@murphai/murph 1.3.0 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2451) hide show
  1. package/CHANGELOG.md +3885 -0
  2. package/config.schema.json +731 -60
  3. package/dist/bin.js +6 -4
  4. package/dist/bin.js.map +1 -1
  5. package/dist/cli-entry.d.ts +8 -1
  6. package/dist/cli-entry.d.ts.map +1 -1
  7. package/dist/cli-entry.js +80 -4
  8. package/dist/cli-entry.js.map +1 -1
  9. package/dist/commands/audit-command-helpers.d.ts.map +1 -1
  10. package/dist/commands/audit-command-helpers.js +7 -5
  11. package/dist/commands/audit-command-helpers.js.map +1 -1
  12. package/dist/commands/automation.d.ts +143 -104
  13. package/dist/commands/automation.d.ts.map +1 -1
  14. package/dist/commands/automation.js +71 -13
  15. package/dist/commands/automation.js.map +1 -1
  16. package/dist/commands/batch.d.ts +7 -4
  17. package/dist/commands/batch.d.ts.map +1 -1
  18. package/dist/commands/batch.js +16 -62
  19. package/dist/commands/batch.js.map +1 -1
  20. package/dist/commands/clinical-imports.d.ts +103 -103
  21. package/dist/commands/command-factory-primitives.d.ts +1 -1
  22. package/dist/commands/command-factory-primitives.d.ts.map +1 -1
  23. package/dist/commands/command-factory-primitives.js +1 -1
  24. package/dist/commands/command-factory-primitives.js.map +1 -1
  25. package/dist/commands/commons.d.ts +59 -0
  26. package/dist/commands/commons.d.ts.map +1 -1
  27. package/dist/commands/commons.js +83 -5
  28. package/dist/commands/commons.js.map +1 -1
  29. package/dist/commands/document.d.ts.map +1 -1
  30. package/dist/commands/document.js +31 -1
  31. package/dist/commands/document.js.map +1 -1
  32. package/dist/commands/encounter.d.ts +128 -128
  33. package/dist/commands/event.d.ts.map +1 -1
  34. package/dist/commands/event.js +7 -1
  35. package/dist/commands/event.js.map +1 -1
  36. package/dist/commands/exercise.d.ts.map +1 -1
  37. package/dist/commands/exercise.js +16 -3
  38. package/dist/commands/exercise.js.map +1 -1
  39. package/dist/commands/experiment-progress-card-image.d.ts.map +1 -1
  40. package/dist/commands/experiment-progress-card-image.js +76 -16
  41. package/dist/commands/experiment-progress-card-image.js.map +1 -1
  42. package/dist/commands/experiment.d.ts.map +1 -1
  43. package/dist/commands/experiment.js +51 -5
  44. package/dist/commands/experiment.js.map +1 -1
  45. package/dist/commands/export-intake-read-helpers.d.ts.map +1 -1
  46. package/dist/commands/export-intake-read-helpers.js +9 -6
  47. package/dist/commands/export-intake-read-helpers.js.map +1 -1
  48. package/dist/commands/food.d.ts.map +1 -1
  49. package/dist/commands/food.js +13 -11
  50. package/dist/commands/food.js.map +1 -1
  51. package/dist/commands/habitat.d.ts.map +1 -1
  52. package/dist/commands/habitat.js +120 -9
  53. package/dist/commands/habitat.js.map +1 -1
  54. package/dist/commands/health-blood-test-save.d.ts.map +1 -1
  55. package/dist/commands/health-blood-test-save.js +42 -8
  56. package/dist/commands/health-blood-test-save.js.map +1 -1
  57. package/dist/commands/meal.d.ts.map +1 -1
  58. package/dist/commands/meal.js +58 -4
  59. package/dist/commands/meal.js.map +1 -1
  60. package/dist/commands/measurement.d.ts +1 -0
  61. package/dist/commands/measurement.d.ts.map +1 -1
  62. package/dist/commands/measurement.js +51 -2
  63. package/dist/commands/measurement.js.map +1 -1
  64. package/dist/commands/medication.d.ts +6 -6
  65. package/dist/commands/model.js +7 -11
  66. package/dist/commands/model.js.map +1 -1
  67. package/dist/commands/murph-age.d.ts +9 -1
  68. package/dist/commands/murph-age.d.ts.map +1 -1
  69. package/dist/commands/murph-age.js +132 -7
  70. package/dist/commands/murph-age.js.map +1 -1
  71. package/dist/commands/occurred-at-option.d.ts.map +1 -1
  72. package/dist/commands/occurred-at-option.js +7 -41
  73. package/dist/commands/occurred-at-option.js.map +1 -1
  74. package/dist/commands/payload-schema-command.d.ts +2 -2
  75. package/dist/commands/payload-schema-command.d.ts.map +1 -1
  76. package/dist/commands/payload-schema-command.js +1 -1
  77. package/dist/commands/payload-schema-command.js.map +1 -1
  78. package/dist/commands/public-validation-issue.d.ts +7 -0
  79. package/dist/commands/public-validation-issue.d.ts.map +1 -0
  80. package/dist/commands/public-validation-issue.js +7 -0
  81. package/dist/commands/public-validation-issue.js.map +1 -0
  82. package/dist/commands/research.d.ts.map +1 -1
  83. package/dist/commands/research.js +26 -28
  84. package/dist/commands/research.js.map +1 -1
  85. package/dist/commands/route.d.ts.map +1 -1
  86. package/dist/commands/route.js +45 -1
  87. package/dist/commands/route.js.map +1 -1
  88. package/dist/commands/scheduled-log.d.ts +142 -124
  89. package/dist/commands/scheduled-log.d.ts.map +1 -1
  90. package/dist/commands/scheduled-log.js +456 -106
  91. package/dist/commands/scheduled-log.js.map +1 -1
  92. package/dist/commands/wearables.d.ts +1520 -145
  93. package/dist/commands/wearables.d.ts.map +1 -1
  94. package/dist/commands/wearables.js +135 -3
  95. package/dist/commands/wearables.js.map +1 -1
  96. package/dist/commands/workout-live.d.ts +3 -0
  97. package/dist/commands/workout-live.d.ts.map +1 -0
  98. package/dist/commands/workout-live.js +372 -0
  99. package/dist/commands/workout-live.js.map +1 -0
  100. package/dist/commands/workout-typed-options.d.ts +38 -0
  101. package/dist/commands/workout-typed-options.d.ts.map +1 -0
  102. package/dist/commands/workout-typed-options.js +90 -0
  103. package/dist/commands/workout-typed-options.js.map +1 -0
  104. package/dist/commands/workout.d.ts.map +1 -1
  105. package/dist/commands/workout.js +115 -84
  106. package/dist/commands/workout.js.map +1 -1
  107. package/dist/food-labels.d.ts +549 -277
  108. package/dist/food-labels.d.ts.map +1 -1
  109. package/dist/food-labels.js +19 -3
  110. package/dist/food-labels.js.map +1 -1
  111. package/dist/foreground-terminal-logging.js +0 -2
  112. package/dist/foreground-terminal-logging.js.map +1 -1
  113. package/dist/hosted-data-api-labels.d.ts +1683 -871
  114. package/dist/hosted-data-api-labels.d.ts.map +1 -1
  115. package/dist/hosted-data-api-labels.js +224 -31
  116. package/dist/hosted-data-api-labels.js.map +1 -1
  117. package/dist/incur-error-bridge.d.ts.map +1 -1
  118. package/dist/incur-error-bridge.js +7 -15
  119. package/dist/incur-error-bridge.js.map +1 -1
  120. package/dist/incur.generated.d.ts +158 -3
  121. package/dist/incur.generated.d.ts.map +1 -1
  122. package/dist/mapbox-address.d.ts +41 -0
  123. package/dist/mapbox-address.d.ts.map +1 -0
  124. package/dist/mapbox-address.js +469 -0
  125. package/dist/mapbox-address.js.map +1 -0
  126. package/dist/mapbox-route-client.d.ts +2 -2
  127. package/dist/mapbox-route-client.d.ts.map +1 -1
  128. package/dist/mapbox-route-client.js +49 -12
  129. package/dist/mapbox-route-client.js.map +1 -1
  130. package/dist/mapbox-route-contracts.d.ts +60 -60
  131. package/dist/mapbox-route-contracts.d.ts.map +1 -1
  132. package/dist/mapbox-route-contracts.js +1 -1
  133. package/dist/mapbox-route-contracts.js.map +1 -1
  134. package/dist/mapbox-route-directions.d.ts.map +1 -1
  135. package/dist/mapbox-route-directions.js +1 -2
  136. package/dist/mapbox-route-directions.js.map +1 -1
  137. package/dist/mapbox-route-elevation.js +0 -1
  138. package/dist/mapbox-route-elevation.js.map +1 -1
  139. package/dist/mapbox-route-points.js +0 -2
  140. package/dist/mapbox-route-points.js.map +1 -1
  141. package/dist/mapbox-route.d.ts.map +1 -1
  142. package/dist/mapbox-route.js +1 -1
  143. package/dist/mapbox-route.js.map +1 -1
  144. package/dist/research-scout-client.d.ts +3 -2
  145. package/dist/research-scout-client.d.ts.map +1 -1
  146. package/dist/research-scout-client.js +166 -37
  147. package/dist/research-scout-client.js.map +1 -1
  148. package/dist/research-scout.d.ts +1 -1
  149. package/dist/research-scout.d.ts.map +1 -1
  150. package/dist/research-scout.js +1 -1
  151. package/dist/research-scout.js.map +1 -1
  152. package/dist/supplement-labels.d.ts +545 -275
  153. package/dist/supplement-labels.d.ts.map +1 -1
  154. package/dist/supplement-labels.js +0 -1
  155. package/dist/supplement-labels.js.map +1 -1
  156. package/dist/vault-cli-command-manifest.d.ts +2472 -700
  157. package/dist/vault-cli-command-manifest.d.ts.map +1 -1
  158. package/dist/vault-cli-command-manifest.js +35 -10
  159. package/dist/vault-cli-command-manifest.js.map +1 -1
  160. package/dist/vault-cli-skill-hash.generated.d.ts +1 -1
  161. package/dist/vault-cli-skill-hash.generated.js +1 -1
  162. package/dist/vault-cli-vault-context.js +0 -1
  163. package/dist/vault-cli-vault-context.js.map +1 -1
  164. package/node_modules/@murphai/assistant-cli/dist/assistant/service.d.ts +9 -0
  165. package/node_modules/@murphai/assistant-cli/dist/assistant/service.d.ts.map +1 -1
  166. package/node_modules/@murphai/assistant-cli/dist/assistant/ui/chat-controller-models.d.ts.map +1 -1
  167. package/node_modules/@murphai/assistant-cli/dist/assistant/ui/chat-controller-models.js +0 -1
  168. package/node_modules/@murphai/assistant-cli/dist/assistant/ui/chat-controller-models.js.map +1 -1
  169. package/node_modules/@murphai/assistant-cli/dist/assistant/ui/ink.d.ts.map +1 -1
  170. package/node_modules/@murphai/assistant-cli/dist/assistant/ui/ink.js +10 -8
  171. package/node_modules/@murphai/assistant-cli/dist/assistant/ui/ink.js.map +1 -1
  172. package/node_modules/@murphai/assistant-cli/dist/assistant-daemon-client.d.ts.map +1 -1
  173. package/node_modules/@murphai/assistant-cli/dist/assistant-daemon-client.js +19 -9
  174. package/node_modules/@murphai/assistant-cli/dist/assistant-daemon-client.js.map +1 -1
  175. package/node_modules/@murphai/assistant-cli/dist/commands/assistant.d.ts.map +1 -1
  176. package/node_modules/@murphai/assistant-cli/dist/commands/assistant.js +20 -56
  177. package/node_modules/@murphai/assistant-cli/dist/commands/assistant.js.map +1 -1
  178. package/node_modules/@murphai/assistant-engine/README.md +73 -16
  179. package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-controller.d.ts +21 -4
  180. package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-controller.d.ts.map +1 -1
  181. package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-controller.js +173 -43
  182. package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-controller.js.map +1 -1
  183. package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-journal.d.ts +75 -70
  184. package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-journal.d.ts.map +1 -1
  185. package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-journal.js +44 -19
  186. package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-journal.js.map +1 -1
  187. package/node_modules/@murphai/assistant-engine/dist/assistant/ask-continuation.d.ts +3 -1
  188. package/node_modules/@murphai/assistant-engine/dist/assistant/ask-continuation.d.ts.map +1 -1
  189. package/node_modules/@murphai/assistant-engine/dist/assistant/ask-continuation.js +28 -7
  190. package/node_modules/@murphai/assistant-engine/dist/assistant/ask-continuation.js.map +1 -1
  191. package/node_modules/@murphai/assistant-engine/dist/assistant/attachment-evidence-model.d.ts.map +1 -1
  192. package/node_modules/@murphai/assistant-engine/dist/assistant/attachment-evidence-model.js +4 -1
  193. package/node_modules/@murphai/assistant-engine/dist/assistant/attachment-evidence-model.js.map +1 -1
  194. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/cross-session-route-state.d.ts +77 -0
  195. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/cross-session-route-state.d.ts.map +1 -0
  196. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/cross-session-route-state.js +777 -0
  197. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/cross-session-route-state.js.map +1 -0
  198. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/grouping.d.ts +1 -0
  199. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/grouping.d.ts.map +1 -1
  200. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/grouping.js +36 -4
  201. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/grouping.js.map +1 -1
  202. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/input-summary.d.ts.map +1 -1
  203. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/input-summary.js +3 -1
  204. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/input-summary.js.map +1 -1
  205. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/operation-scope.d.ts +3 -1
  206. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/operation-scope.d.ts.map +1 -1
  207. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/prompt-builder.d.ts +10 -2
  208. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/prompt-builder.d.ts.map +1 -1
  209. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/prompt-builder.js +33 -13
  210. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/prompt-builder.js.map +1 -1
  211. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/reply.d.ts +12 -1
  212. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/reply.d.ts.map +1 -1
  213. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/reply.js +851 -171
  214. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/reply.js.map +1 -1
  215. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/run-loop.d.ts +2 -0
  216. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/run-loop.d.ts.map +1 -1
  217. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/run-loop.js +51 -18
  218. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/run-loop.js.map +1 -1
  219. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/scanner.d.ts +2 -0
  220. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/scanner.d.ts.map +1 -1
  221. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/scanner.js +59 -30
  222. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/scanner.js.map +1 -1
  223. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/shared.d.ts +3 -1
  224. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/shared.d.ts.map +1 -1
  225. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/shared.js +3 -0
  226. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/shared.js.map +1 -1
  227. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/target-override.d.ts +10 -1
  228. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/target-override.d.ts.map +1 -1
  229. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/target-override.js +62 -1
  230. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/target-override.js.map +1 -1
  231. package/node_modules/@murphai/assistant-engine/dist/assistant/automation.d.ts +1 -1
  232. package/node_modules/@murphai/assistant-engine/dist/assistant/automation.d.ts.map +1 -1
  233. package/node_modules/@murphai/assistant-engine/dist/assistant/automation.js +1 -1
  234. package/node_modules/@murphai/assistant-engine/dist/assistant/automation.js.map +1 -1
  235. package/node_modules/@murphai/assistant-engine/dist/assistant/channel-adapters.d.ts +1 -1
  236. package/node_modules/@murphai/assistant-engine/dist/assistant/channel-adapters.d.ts.map +1 -1
  237. package/node_modules/@murphai/assistant-engine/dist/assistant/channel-adapters.js +1 -1
  238. package/node_modules/@murphai/assistant-engine/dist/assistant/channel-adapters.js.map +1 -1
  239. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/descriptors.d.ts.map +1 -1
  240. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/descriptors.js +107 -44
  241. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/descriptors.js.map +1 -1
  242. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/helpers.d.ts +3 -1
  243. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/helpers.d.ts.map +1 -1
  244. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/helpers.js +34 -3
  245. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/helpers.js.map +1 -1
  246. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/runtime.d.ts +22 -14
  247. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/runtime.d.ts.map +1 -1
  248. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/runtime.js +352 -78
  249. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/runtime.js.map +1 -1
  250. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/types.d.ts +43 -8
  251. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/types.d.ts.map +1 -1
  252. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/types.js.map +1 -1
  253. package/node_modules/@murphai/assistant-engine/dist/assistant/cli-surface-bootstrap.d.ts +1 -0
  254. package/node_modules/@murphai/assistant-engine/dist/assistant/cli-surface-bootstrap.d.ts.map +1 -1
  255. package/node_modules/@murphai/assistant-engine/dist/assistant/cli-surface-bootstrap.js +6 -5
  256. package/node_modules/@murphai/assistant-engine/dist/assistant/cli-surface-bootstrap.js.map +1 -1
  257. package/node_modules/@murphai/assistant-engine/dist/assistant/cli-surface-contract.generated.json +1 -1
  258. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-base-instructions.d.ts +1 -1
  259. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-base-instructions.d.ts.map +1 -1
  260. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-base-instructions.js +14 -7
  261. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-base-instructions.js.map +1 -1
  262. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-runtime.d.ts +17 -0
  263. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-runtime.d.ts.map +1 -1
  264. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-runtime.js +25 -19
  265. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-runtime.js.map +1 -1
  266. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-thread-route.d.ts.map +1 -1
  267. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-thread-route.js +9 -9
  268. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-thread-route.js.map +1 -1
  269. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn/planning.d.ts +4 -8
  270. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn/planning.d.ts.map +1 -1
  271. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn/planning.js +284 -59
  272. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn/planning.js.map +1 -1
  273. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn-runner.d.ts +5 -3
  274. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn-runner.d.ts.map +1 -1
  275. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn-runner.js +152 -24
  276. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn-runner.js.map +1 -1
  277. package/node_modules/@murphai/assistant-engine/dist/assistant/content-types.d.ts +2 -0
  278. package/node_modules/@murphai/assistant-engine/dist/assistant/content-types.d.ts.map +1 -1
  279. package/node_modules/@murphai/assistant-engine/dist/assistant/context-snapshot.d.ts +4 -1
  280. package/node_modules/@murphai/assistant-engine/dist/assistant/context-snapshot.d.ts.map +1 -1
  281. package/node_modules/@murphai/assistant-engine/dist/assistant/context-snapshot.js +76 -24
  282. package/node_modules/@murphai/assistant-engine/dist/assistant/context-snapshot.js.map +1 -1
  283. package/node_modules/@murphai/assistant-engine/dist/assistant/conversation-persistence.d.ts +1 -1
  284. package/node_modules/@murphai/assistant-engine/dist/assistant/conversation-persistence.d.ts.map +1 -1
  285. package/node_modules/@murphai/assistant-engine/dist/assistant/conversation-persistence.js +0 -1
  286. package/node_modules/@murphai/assistant-engine/dist/assistant/conversation-persistence.js.map +1 -1
  287. package/node_modules/@murphai/assistant-engine/dist/assistant/conversation-ref.d.ts +1 -0
  288. package/node_modules/@murphai/assistant-engine/dist/assistant/conversation-ref.d.ts.map +1 -1
  289. package/node_modules/@murphai/assistant-engine/dist/assistant/conversation-ref.js +2 -0
  290. package/node_modules/@murphai/assistant-engine/dist/assistant/conversation-ref.js.map +1 -1
  291. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/authoring.d.ts +5 -1
  292. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/authoring.d.ts.map +1 -1
  293. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/authoring.js +178 -31
  294. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/authoring.js.map +1 -1
  295. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/canonical-jobs.d.ts +32 -1
  296. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/canonical-jobs.d.ts.map +1 -1
  297. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/canonical-jobs.js +147 -31
  298. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/canonical-jobs.js.map +1 -1
  299. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/delivery-reconciliation.d.ts +8 -0
  300. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/delivery-reconciliation.d.ts.map +1 -1
  301. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/delivery-reconciliation.js +73 -15
  302. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/delivery-reconciliation.js.map +1 -1
  303. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/execution.d.ts +8 -1
  304. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/execution.d.ts.map +1 -1
  305. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/execution.js +438 -116
  306. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/execution.js.map +1 -1
  307. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/mutations.d.ts.map +1 -1
  308. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/mutations.js +2 -0
  309. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/mutations.js.map +1 -1
  310. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/output-history.d.ts +11 -0
  311. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/output-history.d.ts.map +1 -0
  312. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/output-history.js +153 -0
  313. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/output-history.js.map +1 -0
  314. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/runtime-state.d.ts +47 -47
  315. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/runtime-state.d.ts.map +1 -1
  316. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/runtime-state.js +1 -1
  317. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/runtime-state.js.map +1 -1
  318. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/schedule.d.ts +10 -0
  319. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/schedule.d.ts.map +1 -1
  320. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/schedule.js +28 -0
  321. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/schedule.js.map +1 -1
  322. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/store.d.ts +49 -39
  323. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/store.d.ts.map +1 -1
  324. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/store.js +19 -1
  325. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/store.js.map +1 -1
  326. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/targets.d.ts.map +1 -1
  327. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/targets.js +1 -3
  328. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/targets.js.map +1 -1
  329. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/timing-verification.d.ts +2 -0
  330. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/timing-verification.d.ts.map +1 -0
  331. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/timing-verification.js +2 -0
  332. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/timing-verification.js.map +1 -0
  333. package/node_modules/@murphai/assistant-engine/dist/assistant/cron.d.ts +9 -0
  334. package/node_modules/@murphai/assistant-engine/dist/assistant/cron.d.ts.map +1 -1
  335. package/node_modules/@murphai/assistant-engine/dist/assistant/cron.js +31 -2
  336. package/node_modules/@murphai/assistant-engine/dist/assistant/cron.js.map +1 -1
  337. package/node_modules/@murphai/assistant-engine/dist/assistant/delivery-service.d.ts +8 -0
  338. package/node_modules/@murphai/assistant-engine/dist/assistant/delivery-service.d.ts.map +1 -1
  339. package/node_modules/@murphai/assistant-engine/dist/assistant/delivery-service.js +38 -8
  340. package/node_modules/@murphai/assistant-engine/dist/assistant/delivery-service.js.map +1 -1
  341. package/node_modules/@murphai/assistant-engine/dist/assistant/device-activity-cron-tags.d.ts +2 -1
  342. package/node_modules/@murphai/assistant-engine/dist/assistant/device-activity-cron-tags.d.ts.map +1 -1
  343. package/node_modules/@murphai/assistant-engine/dist/assistant/device-activity-cron-tags.js +8 -0
  344. package/node_modules/@murphai/assistant-engine/dist/assistant/device-activity-cron-tags.js.map +1 -1
  345. package/node_modules/@murphai/assistant-engine/dist/assistant/execution-context.d.ts +123 -13
  346. package/node_modules/@murphai/assistant-engine/dist/assistant/execution-context.d.ts.map +1 -1
  347. package/node_modules/@murphai/assistant-engine/dist/assistant/execution-context.js +57 -11
  348. package/node_modules/@murphai/assistant-engine/dist/assistant/execution-context.js.map +1 -1
  349. package/node_modules/@murphai/assistant-engine/dist/assistant/execution-plan.d.ts.map +1 -1
  350. package/node_modules/@murphai/assistant-engine/dist/assistant/execution-plan.js +2 -8
  351. package/node_modules/@murphai/assistant-engine/dist/assistant/execution-plan.js.map +1 -1
  352. package/node_modules/@murphai/assistant-engine/dist/assistant/experiment-support-automations.d.ts.map +1 -1
  353. package/node_modules/@murphai/assistant-engine/dist/assistant/experiment-support-automations.js +10 -0
  354. package/node_modules/@murphai/assistant-engine/dist/assistant/experiment-support-automations.js.map +1 -1
  355. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-response-card-schema.d.ts +115 -0
  356. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-response-card-schema.d.ts.map +1 -0
  357. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-response-card-schema.js +162 -0
  358. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-response-card-schema.js.map +1 -0
  359. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-response-card.d.ts +3 -0
  360. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-response-card.d.ts.map +1 -0
  361. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-response-card.js +118 -0
  362. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-response-card.js.map +1 -0
  363. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-scorecard-schema.d.ts +83 -1
  364. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-scorecard-schema.d.ts.map +1 -1
  365. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-scorecard-schema.js +27 -22
  366. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-scorecard-schema.js.map +1 -1
  367. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-scorecard.js +8 -0
  368. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-scorecard.js.map +1 -1
  369. package/node_modules/@murphai/assistant-engine/dist/assistant/group-email-outbox.d.ts +20 -0
  370. package/node_modules/@murphai/assistant-engine/dist/assistant/group-email-outbox.d.ts.map +1 -0
  371. package/node_modules/@murphai/assistant-engine/dist/assistant/{newsletter-outbox.js → group-email-outbox.js} +65 -36
  372. package/node_modules/@murphai/assistant-engine/dist/assistant/group-email-outbox.js.map +1 -0
  373. package/node_modules/@murphai/assistant-engine/dist/assistant/group-newsletter-automation.d.ts +2 -48
  374. package/node_modules/@murphai/assistant-engine/dist/assistant/group-newsletter-automation.d.ts.map +1 -1
  375. package/node_modules/@murphai/assistant-engine/dist/assistant/group-newsletter-automation.js +14 -98
  376. package/node_modules/@murphai/assistant-engine/dist/assistant/group-newsletter-automation.js.map +1 -1
  377. package/node_modules/@murphai/assistant-engine/dist/assistant/group-room-model.d.ts +22 -3
  378. package/node_modules/@murphai/assistant-engine/dist/assistant/group-room-model.d.ts.map +1 -1
  379. package/node_modules/@murphai/assistant-engine/dist/assistant/group-room-model.js +87 -28
  380. package/node_modules/@murphai/assistant-engine/dist/assistant/group-room-model.js.map +1 -1
  381. package/node_modules/@murphai/assistant-engine/dist/assistant/group-shared-freshness.d.ts +2 -0
  382. package/node_modules/@murphai/assistant-engine/dist/assistant/group-shared-freshness.d.ts.map +1 -0
  383. package/node_modules/@murphai/assistant-engine/dist/assistant/group-shared-freshness.js +5 -0
  384. package/node_modules/@murphai/assistant-engine/dist/assistant/group-shared-freshness.js.map +1 -0
  385. package/node_modules/@murphai/assistant-engine/dist/assistant/group-shared-read-limits.d.ts +3 -2
  386. package/node_modules/@murphai/assistant-engine/dist/assistant/group-shared-read-limits.d.ts.map +1 -1
  387. package/node_modules/@murphai/assistant-engine/dist/assistant/group-shared-read-limits.js +21 -2
  388. package/node_modules/@murphai/assistant-engine/dist/assistant/group-shared-read-limits.js.map +1 -1
  389. package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-image-completion.d.ts +31 -0
  390. package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-image-completion.d.ts.map +1 -0
  391. package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-image-completion.js +164 -0
  392. package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-image-completion.js.map +1 -0
  393. package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-tool-context.d.ts +80 -24
  394. package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-tool-context.d.ts.map +1 -1
  395. package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-tool-context.js +191 -62
  396. package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-tool-context.js.map +1 -1
  397. package/node_modules/@murphai/assistant-engine/dist/assistant/input-source.d.ts +1 -0
  398. package/node_modules/@murphai/assistant-engine/dist/assistant/input-source.d.ts.map +1 -1
  399. package/node_modules/@murphai/assistant-engine/dist/assistant/input-source.js +2 -1
  400. package/node_modules/@murphai/assistant-engine/dist/assistant/input-source.js.map +1 -1
  401. package/node_modules/@murphai/assistant-engine/dist/assistant/input-store.d.ts +273 -269
  402. package/node_modules/@murphai/assistant-engine/dist/assistant/input-store.d.ts.map +1 -1
  403. package/node_modules/@murphai/assistant-engine/dist/assistant/input-store.js +6 -1
  404. package/node_modules/@murphai/assistant-engine/dist/assistant/input-store.js.map +1 -1
  405. package/node_modules/@murphai/assistant-engine/dist/assistant/issue-reporting.d.ts +3 -0
  406. package/node_modules/@murphai/assistant-engine/dist/assistant/issue-reporting.d.ts.map +1 -1
  407. package/node_modules/@murphai/assistant-engine/dist/assistant/issue-reporting.js +26 -1
  408. package/node_modules/@murphai/assistant-engine/dist/assistant/issue-reporting.js.map +1 -1
  409. package/node_modules/@murphai/assistant-engine/dist/assistant/linq-delivery-posture.d.ts +3 -0
  410. package/node_modules/@murphai/assistant-engine/dist/assistant/linq-delivery-posture.d.ts.map +1 -0
  411. package/node_modules/@murphai/assistant-engine/dist/assistant/linq-delivery-posture.js +20 -0
  412. package/node_modules/@murphai/assistant-engine/dist/assistant/linq-delivery-posture.js.map +1 -0
  413. package/node_modules/@murphai/assistant-engine/dist/assistant/local-service.d.ts.map +1 -1
  414. package/node_modules/@murphai/assistant-engine/dist/assistant/local-service.js +886 -436
  415. package/node_modules/@murphai/assistant-engine/dist/assistant/local-service.js.map +1 -1
  416. package/node_modules/@murphai/assistant-engine/dist/assistant/maintenance-evidence.d.ts +3 -3
  417. package/node_modules/@murphai/assistant-engine/dist/assistant/maintenance-evidence.d.ts.map +1 -1
  418. package/node_modules/@murphai/assistant-engine/dist/assistant/maintenance-evidence.js +245 -6
  419. package/node_modules/@murphai/assistant-engine/dist/assistant/maintenance-evidence.js.map +1 -1
  420. package/node_modules/@murphai/assistant-engine/dist/assistant/managed-automations.d.ts +22 -1
  421. package/node_modules/@murphai/assistant-engine/dist/assistant/managed-automations.d.ts.map +1 -1
  422. package/node_modules/@murphai/assistant-engine/dist/assistant/managed-automations.js +338 -47
  423. package/node_modules/@murphai/assistant-engine/dist/assistant/managed-automations.js.map +1 -1
  424. package/node_modules/@murphai/assistant-engine/dist/assistant/message-target-selection.d.ts +13 -22
  425. package/node_modules/@murphai/assistant-engine/dist/assistant/message-target-selection.d.ts.map +1 -1
  426. package/node_modules/@murphai/assistant-engine/dist/assistant/message-target-selection.js +8 -3
  427. package/node_modules/@murphai/assistant-engine/dist/assistant/message-target-selection.js.map +1 -1
  428. package/node_modules/@murphai/assistant-engine/dist/assistant/model-behavior.d.ts +2 -0
  429. package/node_modules/@murphai/assistant-engine/dist/assistant/model-behavior.d.ts.map +1 -1
  430. package/node_modules/@murphai/assistant-engine/dist/assistant/model-behavior.js +43 -9
  431. package/node_modules/@murphai/assistant-engine/dist/assistant/model-behavior.js.map +1 -1
  432. package/node_modules/@murphai/assistant-engine/dist/assistant/notification-turn.d.ts +16 -14
  433. package/node_modules/@murphai/assistant-engine/dist/assistant/notification-turn.d.ts.map +1 -1
  434. package/node_modules/@murphai/assistant-engine/dist/assistant/notification-turn.js +339 -62
  435. package/node_modules/@murphai/assistant-engine/dist/assistant/notification-turn.js.map +1 -1
  436. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-first-personal-read-automation.d.ts +14 -0
  437. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-first-personal-read-automation.d.ts.map +1 -0
  438. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-first-personal-read-automation.js +94 -0
  439. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-first-personal-read-automation.js.map +1 -0
  440. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-followup-automation.d.ts +22 -3
  441. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-followup-automation.d.ts.map +1 -1
  442. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-followup-automation.js +81 -7
  443. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-followup-automation.js.map +1 -1
  444. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-followup-seed.d.ts +25 -0
  445. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-followup-seed.d.ts.map +1 -0
  446. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-followup-seed.js +72 -0
  447. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-followup-seed.js.map +1 -0
  448. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-goal-checkin-automation.d.ts +1 -0
  449. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-goal-checkin-automation.d.ts.map +1 -1
  450. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-goal-checkin-automation.js +184 -83
  451. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-goal-checkin-automation.js.map +1 -1
  452. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-state.d.ts +4 -0
  453. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-state.d.ts.map +1 -1
  454. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-state.js +15 -1
  455. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-state.js.map +1 -1
  456. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/automation-authority.d.ts.map +1 -1
  457. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/automation-authority.js +24 -1
  458. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/automation-authority.js.map +1 -1
  459. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/dispatch-state.d.ts +15 -3
  460. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/dispatch-state.d.ts.map +1 -1
  461. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/dispatch-state.js +314 -53
  462. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/dispatch-state.js.map +1 -1
  463. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/intents.d.ts +2 -0
  464. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/intents.d.ts.map +1 -1
  465. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/intents.js +1 -0
  466. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/intents.js.map +1 -1
  467. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/receipt-repair.d.ts.map +1 -1
  468. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/receipt-repair.js +5 -0
  469. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/receipt-repair.js.map +1 -1
  470. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/retry-policy.d.ts +4 -1
  471. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/retry-policy.d.ts.map +1 -1
  472. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/retry-policy.js +33 -8
  473. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/retry-policy.js.map +1 -1
  474. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/store.d.ts +38 -4
  475. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/store.d.ts.map +1 -1
  476. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/store.js +1034 -41
  477. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/store.js.map +1 -1
  478. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/summary.d.ts.map +1 -1
  479. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/summary.js +7 -0
  480. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/summary.js.map +1 -1
  481. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox.d.ts +65 -8
  482. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox.d.ts.map +1 -1
  483. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox.js +569 -67
  484. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox.js.map +1 -1
  485. package/node_modules/@murphai/assistant-engine/dist/assistant/private-completion-continuity.d.ts +23 -0
  486. package/node_modules/@murphai/assistant-engine/dist/assistant/private-completion-continuity.d.ts.map +1 -0
  487. package/node_modules/@murphai/assistant-engine/dist/assistant/private-completion-continuity.js +294 -0
  488. package/node_modules/@murphai/assistant-engine/dist/assistant/private-completion-continuity.js.map +1 -0
  489. package/node_modules/@murphai/assistant-engine/dist/assistant/prompt-time.d.ts +12 -0
  490. package/node_modules/@murphai/assistant-engine/dist/assistant/prompt-time.d.ts.map +1 -0
  491. package/node_modules/@murphai/assistant-engine/dist/assistant/prompt-time.js +38 -0
  492. package/node_modules/@murphai/assistant-engine/dist/assistant/prompt-time.js.map +1 -0
  493. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-catalog.d.ts.map +1 -1
  494. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-catalog.js +2 -2
  495. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-catalog.js.map +1 -1
  496. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-start-critical-path.d.ts +48 -0
  497. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-start-critical-path.d.ts.map +1 -0
  498. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-start-critical-path.js +101 -0
  499. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-start-critical-path.js.map +1 -0
  500. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/codex-cli.d.ts +6 -0
  501. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/codex-cli.d.ts.map +1 -1
  502. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/codex-cli.js +86 -97
  503. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/codex-cli.js.map +1 -1
  504. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/helpers.d.ts +16 -5
  505. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/helpers.d.ts.map +1 -1
  506. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/helpers.js +379 -644
  507. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/helpers.js.map +1 -1
  508. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/types.d.ts +40 -1
  509. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/types.d.ts.map +1 -1
  510. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/types.js.map +1 -1
  511. package/node_modules/@murphai/assistant-engine/dist/assistant/redaction.d.ts +2 -1
  512. package/node_modules/@murphai/assistant-engine/dist/assistant/redaction.d.ts.map +1 -1
  513. package/node_modules/@murphai/assistant-engine/dist/assistant/redaction.js +6 -1
  514. package/node_modules/@murphai/assistant-engine/dist/assistant/redaction.js.map +1 -1
  515. package/node_modules/@murphai/assistant-engine/dist/assistant/reminder-availability-maintenance.d.ts +17 -0
  516. package/node_modules/@murphai/assistant-engine/dist/assistant/reminder-availability-maintenance.d.ts.map +1 -0
  517. package/node_modules/@murphai/assistant-engine/dist/assistant/reminder-availability-maintenance.js +287 -0
  518. package/node_modules/@murphai/assistant-engine/dist/assistant/reminder-availability-maintenance.js.map +1 -0
  519. package/node_modules/@murphai/assistant-engine/dist/assistant/reply-delivery-context.d.ts +1 -1
  520. package/node_modules/@murphai/assistant-engine/dist/assistant/reply-delivery-context.d.ts.map +1 -1
  521. package/node_modules/@murphai/assistant-engine/dist/assistant/reply-delivery-context.js +10 -0
  522. package/node_modules/@murphai/assistant-engine/dist/assistant/reply-delivery-context.js.map +1 -1
  523. package/node_modules/@murphai/assistant-engine/dist/assistant/response-media.d.ts +33 -1
  524. package/node_modules/@murphai/assistant-engine/dist/assistant/response-media.d.ts.map +1 -1
  525. package/node_modules/@murphai/assistant-engine/dist/assistant/response-media.js +173 -3
  526. package/node_modules/@murphai/assistant-engine/dist/assistant/response-media.js.map +1 -1
  527. package/node_modules/@murphai/assistant-engine/dist/assistant/runtime-residue.d.ts +25 -4
  528. package/node_modules/@murphai/assistant-engine/dist/assistant/runtime-residue.d.ts.map +1 -1
  529. package/node_modules/@murphai/assistant-engine/dist/assistant/runtime-residue.js +137 -69
  530. package/node_modules/@murphai/assistant-engine/dist/assistant/runtime-residue.js.map +1 -1
  531. package/node_modules/@murphai/assistant-engine/dist/assistant/service-contracts.d.ts +20 -4
  532. package/node_modules/@murphai/assistant-engine/dist/assistant/service-contracts.d.ts.map +1 -1
  533. package/node_modules/@murphai/assistant-engine/dist/assistant/service-turn-routes.d.ts +1 -1
  534. package/node_modules/@murphai/assistant-engine/dist/assistant/service-turn-routes.d.ts.map +1 -1
  535. package/node_modules/@murphai/assistant-engine/dist/assistant/service-turn-routes.js +18 -8
  536. package/node_modules/@murphai/assistant-engine/dist/assistant/service-turn-routes.js.map +1 -1
  537. package/node_modules/@murphai/assistant-engine/dist/assistant/service-usage.d.ts +5 -2
  538. package/node_modules/@murphai/assistant-engine/dist/assistant/service-usage.d.ts.map +1 -1
  539. package/node_modules/@murphai/assistant-engine/dist/assistant/service-usage.js +31 -11
  540. package/node_modules/@murphai/assistant-engine/dist/assistant/service-usage.js.map +1 -1
  541. package/node_modules/@murphai/assistant-engine/dist/assistant/service.d.ts +12 -2
  542. package/node_modules/@murphai/assistant-engine/dist/assistant/service.d.ts.map +1 -1
  543. package/node_modules/@murphai/assistant-engine/dist/assistant/service.js +5 -3
  544. package/node_modules/@murphai/assistant-engine/dist/assistant/service.js.map +1 -1
  545. package/node_modules/@murphai/assistant-engine/dist/assistant/session-resolution.d.ts.map +1 -1
  546. package/node_modules/@murphai/assistant-engine/dist/assistant/session-resolution.js +71 -16
  547. package/node_modules/@murphai/assistant-engine/dist/assistant/session-resolution.js.map +1 -1
  548. package/node_modules/@murphai/assistant-engine/dist/assistant/shared.d.ts +1 -0
  549. package/node_modules/@murphai/assistant-engine/dist/assistant/shared.d.ts.map +1 -1
  550. package/node_modules/@murphai/assistant-engine/dist/assistant/shared.js +1 -0
  551. package/node_modules/@murphai/assistant-engine/dist/assistant/shared.js.map +1 -1
  552. package/node_modules/@murphai/assistant-engine/dist/assistant/state-secrets.d.ts +1 -1
  553. package/node_modules/@murphai/assistant-engine/dist/assistant/state-secrets.d.ts.map +1 -1
  554. package/node_modules/@murphai/assistant-engine/dist/assistant/state-secrets.js +0 -1
  555. package/node_modules/@murphai/assistant-engine/dist/assistant/state-secrets.js.map +1 -1
  556. package/node_modules/@murphai/assistant-engine/dist/assistant/store/persistence.d.ts +11 -3
  557. package/node_modules/@murphai/assistant-engine/dist/assistant/store/persistence.d.ts.map +1 -1
  558. package/node_modules/@murphai/assistant-engine/dist/assistant/store/persistence.js +410 -139
  559. package/node_modules/@murphai/assistant-engine/dist/assistant/store/persistence.js.map +1 -1
  560. package/node_modules/@murphai/assistant-engine/dist/assistant/store/types.d.ts +3 -0
  561. package/node_modules/@murphai/assistant-engine/dist/assistant/store/types.d.ts.map +1 -1
  562. package/node_modules/@murphai/assistant-engine/dist/assistant/store.d.ts.map +1 -1
  563. package/node_modules/@murphai/assistant-engine/dist/assistant/store.js +54 -13
  564. package/node_modules/@murphai/assistant-engine/dist/assistant/store.js.map +1 -1
  565. package/node_modules/@murphai/assistant-engine/dist/assistant/system-prompt.d.ts +7 -0
  566. package/node_modules/@murphai/assistant-engine/dist/assistant/system-prompt.d.ts.map +1 -1
  567. package/node_modules/@murphai/assistant-engine/dist/assistant/system-prompt.js +312 -138
  568. package/node_modules/@murphai/assistant-engine/dist/assistant/system-prompt.js.map +1 -1
  569. package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-digest.d.ts +10 -0
  570. package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-digest.d.ts.map +1 -1
  571. package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-digest.js +150 -10
  572. package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-digest.js.map +1 -1
  573. package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-feedback.d.ts +8 -0
  574. package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-feedback.d.ts.map +1 -0
  575. package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-feedback.js +74 -0
  576. package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-feedback.js.map +1 -0
  577. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-finalizer.d.ts +1 -0
  578. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-finalizer.d.ts.map +1 -1
  579. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-finalizer.js +115 -16
  580. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-finalizer.js.map +1 -1
  581. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-input.d.ts +3 -2
  582. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-input.d.ts.map +1 -1
  583. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-input.js.map +1 -1
  584. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-progress.d.ts +9 -2
  585. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-progress.d.ts.map +1 -1
  586. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-progress.js +49 -6
  587. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-progress.js.map +1 -1
  588. package/node_modules/@murphai/assistant-engine/dist/assistant/turns.d.ts +1 -0
  589. package/node_modules/@murphai/assistant-engine/dist/assistant/turns.d.ts.map +1 -1
  590. package/node_modules/@murphai/assistant-engine/dist/assistant/turns.js +62 -22
  591. package/node_modules/@murphai/assistant-engine/dist/assistant/turns.js.map +1 -1
  592. package/node_modules/@murphai/assistant-engine/dist/assistant/usage-attribution.d.ts +1 -1
  593. package/node_modules/@murphai/assistant-engine/dist/assistant/usage-attribution.d.ts.map +1 -1
  594. package/node_modules/@murphai/assistant-engine/dist/assistant/usage-attribution.js.map +1 -1
  595. package/node_modules/@murphai/assistant-engine/dist/assistant/vault-file-send.d.ts +7 -0
  596. package/node_modules/@murphai/assistant-engine/dist/assistant/vault-file-send.d.ts.map +1 -1
  597. package/node_modules/@murphai/assistant-engine/dist/assistant/vault-file-send.js +47 -1
  598. package/node_modules/@murphai/assistant-engine/dist/assistant/vault-file-send.js.map +1 -1
  599. package/node_modules/@murphai/assistant-engine/dist/assistant-ask.d.ts +4 -1
  600. package/node_modules/@murphai/assistant-engine/dist/assistant-ask.d.ts.map +1 -1
  601. package/node_modules/@murphai/assistant-engine/dist/assistant-ask.js +57 -23
  602. package/node_modules/@murphai/assistant-engine/dist/assistant-ask.js.map +1 -1
  603. package/node_modules/@murphai/assistant-engine/dist/assistant-channel-adapters.d.ts +1 -1
  604. package/node_modules/@murphai/assistant-engine/dist/assistant-channel-adapters.d.ts.map +1 -1
  605. package/node_modules/@murphai/assistant-engine/dist/assistant-channel-adapters.js +1 -1
  606. package/node_modules/@murphai/assistant-engine/dist/assistant-channel-adapters.js.map +1 -1
  607. package/node_modules/@murphai/assistant-engine/dist/assistant-channel-runtime.d.ts +1 -1
  608. package/node_modules/@murphai/assistant-engine/dist/assistant-channel-runtime.d.ts.map +1 -1
  609. package/node_modules/@murphai/assistant-engine/dist/assistant-channel-runtime.js +1 -1
  610. package/node_modules/@murphai/assistant-engine/dist/assistant-channel-runtime.js.map +1 -1
  611. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-access.d.ts.map +1 -1
  612. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-access.js +13 -1
  613. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-access.js.map +1 -1
  614. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/action-diagnostics.d.ts +8 -4
  615. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/action-diagnostics.d.ts.map +1 -1
  616. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/action-diagnostics.js +136 -19
  617. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/action-diagnostics.js.map +1 -1
  618. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/action-outcome.d.ts +5 -0
  619. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/action-outcome.d.ts.map +1 -0
  620. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/action-outcome.js +36 -0
  621. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/action-outcome.js.map +1 -0
  622. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/analyze-video-tool.d.ts +49 -0
  623. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/analyze-video-tool.d.ts.map +1 -0
  624. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/analyze-video-tool.js +387 -0
  625. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/analyze-video-tool.js.map +1 -0
  626. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-protocol.d.ts +59 -0
  627. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-protocol.d.ts.map +1 -0
  628. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-protocol.js +180 -0
  629. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-protocol.js.map +1 -0
  630. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-requests.d.ts +6 -3
  631. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-requests.d.ts.map +1 -1
  632. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-requests.js +35 -10
  633. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-requests.js.map +1 -1
  634. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-rpc.d.ts +3 -4
  635. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-rpc.d.ts.map +1 -1
  636. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-rpc.js +9 -15
  637. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-rpc.js.map +1 -1
  638. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/ask-grok-tool.d.ts.map +1 -1
  639. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/ask-grok-tool.js +77 -11
  640. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/ask-grok-tool.js.map +1 -1
  641. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/command-family.d.ts +21 -0
  642. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/command-family.d.ts.map +1 -0
  643. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/command-family.js +213 -0
  644. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/command-family.js.map +1 -0
  645. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tool-catalog.d.ts +3320 -0
  646. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tool-catalog.d.ts.map +1 -0
  647. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tool-catalog.js +1403 -0
  648. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tool-catalog.js.map +1 -0
  649. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/analyze-video.d.ts +50 -0
  650. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/analyze-video.d.ts.map +1 -0
  651. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/analyze-video.js +79 -0
  652. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/analyze-video.js.map +1 -0
  653. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/ask-grok.d.ts +1 -1
  654. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/ask-grok.d.ts.map +1 -1
  655. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/ask-grok.js +2 -2
  656. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/ask-grok.js.map +1 -1
  657. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/assistant-style.d.ts +15 -32
  658. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/assistant-style.d.ts.map +1 -1
  659. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/assistant-style.js +11 -7
  660. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/assistant-style.js.map +1 -1
  661. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation-model-input-schema.d.ts +4 -0
  662. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation-model-input-schema.d.ts.map +1 -0
  663. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation-model-input-schema.js +153 -0
  664. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation-model-input-schema.js.map +1 -0
  665. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation.d.ts +29 -150
  666. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation.d.ts.map +1 -1
  667. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation.js +537 -109
  668. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation.js.map +1 -1
  669. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/clinical-records.js +4 -4
  670. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/clinical-records.js.map +1 -1
  671. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/connected-apps.d.ts +10 -54
  672. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/connected-apps.d.ts.map +1 -1
  673. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/connected-apps.js +134 -109
  674. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/connected-apps.js.map +1 -1
  675. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/device.d.ts +6 -13
  676. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/device.d.ts.map +1 -1
  677. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/device.js +44 -10
  678. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/device.js.map +1 -1
  679. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/dynamic-tool-wrapper.d.ts +8 -1
  680. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/dynamic-tool-wrapper.d.ts.map +1 -1
  681. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/dynamic-tool-wrapper.js +2 -1
  682. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/dynamic-tool-wrapper.js.map +1 -1
  683. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/generate-song.d.ts +9 -2
  684. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/generate-song.d.ts.map +1 -1
  685. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/generate-song.js +31 -3
  686. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/generate-song.js.map +1 -1
  687. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/generate-voice-memo.d.ts +7 -6
  688. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/generate-voice-memo.d.ts.map +1 -1
  689. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/generate-voice-memo.js +12 -8
  690. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/generate-voice-memo.js.map +1 -1
  691. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/group-room-model.d.ts +10 -19
  692. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/group-room-model.d.ts.map +1 -1
  693. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/group-room-model.js +19 -7
  694. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/group-room-model.js.map +1 -1
  695. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/labs.d.ts +2 -16
  696. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/labs.d.ts.map +1 -1
  697. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/labs.js +1 -1
  698. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/labs.js.map +1 -1
  699. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/member-memory.d.ts +60 -0
  700. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/member-memory.d.ts.map +1 -0
  701. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/member-memory.js +91 -0
  702. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/member-memory.js.map +1 -0
  703. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/pending-vault-files.d.ts +65 -0
  704. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/pending-vault-files.d.ts.map +1 -0
  705. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/pending-vault-files.js +214 -0
  706. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/pending-vault-files.js.map +1 -0
  707. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/phone-calls.d.ts +24 -16
  708. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/phone-calls.d.ts.map +1 -1
  709. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/phone-calls.js +78 -7
  710. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/phone-calls.js.map +1 -1
  711. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/physical-notes.d.ts +131 -0
  712. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/physical-notes.d.ts.map +1 -0
  713. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/physical-notes.js +275 -0
  714. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/physical-notes.js.map +1 -0
  715. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools.d.ts +131 -2427
  716. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools.d.ts.map +1 -1
  717. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools.js +2505 -1575
  718. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools.js.map +1 -1
  719. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/failures.d.ts.map +1 -1
  720. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/failures.js +39 -95
  721. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/failures.js.map +1 -1
  722. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/generate-image-tool.d.ts +5 -2
  723. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/generate-image-tool.d.ts.map +1 -1
  724. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/generate-image-tool.js +88 -101
  725. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/generate-image-tool.js.map +1 -1
  726. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/generate-voice-memo-tool.d.ts +58 -13
  727. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/generate-voice-memo-tool.d.ts.map +1 -1
  728. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/generate-voice-memo-tool.js +85 -122
  729. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/generate-voice-memo-tool.js.map +1 -1
  730. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/image-reference-resolver.d.ts.map +1 -1
  731. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/image-reference-resolver.js +5 -3
  732. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/image-reference-resolver.js.map +1 -1
  733. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/images.d.ts +15 -2
  734. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/images.d.ts.map +1 -1
  735. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/images.js +99 -8
  736. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/images.js.map +1 -1
  737. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/managed-voice-memo-runtime.d.ts +17 -0
  738. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/managed-voice-memo-runtime.d.ts.map +1 -0
  739. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/managed-voice-memo-runtime.js +12 -0
  740. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/managed-voice-memo-runtime.js.map +1 -0
  741. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/openai-image-generation.d.ts +7 -11
  742. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/openai-image-generation.d.ts.map +1 -1
  743. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/openai-image-generation.js +237 -52
  744. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/openai-image-generation.js.map +1 -1
  745. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/response-card-validation-feedback.d.ts +3 -0
  746. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/response-card-validation-feedback.d.ts.map +1 -0
  747. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/response-card-validation-feedback.js +5 -0
  748. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/response-card-validation-feedback.js.map +1 -0
  749. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/workout-delivery-context.d.ts +19 -0
  750. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/workout-delivery-context.d.ts.map +1 -0
  751. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/workout-delivery-context.js +203 -0
  752. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/workout-delivery-context.js.map +1 -0
  753. package/node_modules/@murphai/assistant-engine/dist/assistant-codex-events.d.ts.map +1 -1
  754. package/node_modules/@murphai/assistant-engine/dist/assistant-codex-events.js +189 -486
  755. package/node_modules/@murphai/assistant-engine/dist/assistant-codex-events.js.map +1 -1
  756. package/node_modules/@murphai/assistant-engine/dist/assistant-codex.d.ts +42 -6
  757. package/node_modules/@murphai/assistant-engine/dist/assistant-codex.d.ts.map +1 -1
  758. package/node_modules/@murphai/assistant-engine/dist/assistant-codex.js +1196 -339
  759. package/node_modules/@murphai/assistant-engine/dist/assistant-codex.js.map +1 -1
  760. package/node_modules/@murphai/assistant-engine/dist/assistant-runtime-residue.d.ts +1 -1
  761. package/node_modules/@murphai/assistant-engine/dist/assistant-runtime-residue.d.ts.map +1 -1
  762. package/node_modules/@murphai/assistant-engine/dist/assistant-runtime-residue.js +1 -1
  763. package/node_modules/@murphai/assistant-engine/dist/assistant-runtime-residue.js.map +1 -1
  764. package/node_modules/@murphai/assistant-engine/dist/assistant-runtime.d.ts +2 -0
  765. package/node_modules/@murphai/assistant-engine/dist/assistant-runtime.d.ts.map +1 -1
  766. package/node_modules/@murphai/assistant-engine/dist/assistant-runtime.js +1 -0
  767. package/node_modules/@murphai/assistant-engine/dist/assistant-runtime.js.map +1 -1
  768. package/node_modules/@murphai/assistant-engine/dist/assistant-skill-assets.d.ts +24 -24
  769. package/node_modules/@murphai/assistant-engine/dist/assistant-skill-assets.d.ts.map +1 -1
  770. package/node_modules/@murphai/assistant-engine/dist/assistant-skill-assets.js +27 -27
  771. package/node_modules/@murphai/assistant-engine/dist/assistant-skill-assets.js.map +1 -1
  772. package/node_modules/@murphai/assistant-engine/dist/attachment-prompt-contracts.d.ts +27 -27
  773. package/node_modules/@murphai/assistant-engine/dist/attachment-prompt-contracts.d.ts.map +1 -1
  774. package/node_modules/@murphai/assistant-engine/dist/attachment-prompt-contracts.js +1 -1
  775. package/node_modules/@murphai/assistant-engine/dist/attachment-prompt-contracts.js.map +1 -1
  776. package/node_modules/@murphai/assistant-engine/dist/index.d.ts +9 -3
  777. package/node_modules/@murphai/assistant-engine/dist/index.d.ts.map +1 -1
  778. package/node_modules/@murphai/assistant-engine/dist/index.js +7 -1
  779. package/node_modules/@murphai/assistant-engine/dist/index.js.map +1 -1
  780. package/node_modules/@murphai/assistant-engine/dist/knowledge/documents.d.ts +1 -1
  781. package/node_modules/@murphai/assistant-engine/dist/knowledge/documents.d.ts.map +1 -1
  782. package/node_modules/@murphai/assistant-engine/dist/knowledge/documents.js +5 -1
  783. package/node_modules/@murphai/assistant-engine/dist/knowledge/documents.js.map +1 -1
  784. package/node_modules/@murphai/assistant-engine/dist/knowledge/service.d.ts +1 -0
  785. package/node_modules/@murphai/assistant-engine/dist/knowledge/service.d.ts.map +1 -1
  786. package/node_modules/@murphai/assistant-engine/dist/knowledge/service.js +16 -2
  787. package/node_modules/@murphai/assistant-engine/dist/knowledge/service.js.map +1 -1
  788. package/node_modules/@murphai/assistant-engine/dist/outbound-channel.d.ts +5 -2
  789. package/node_modules/@murphai/assistant-engine/dist/outbound-channel.d.ts.map +1 -1
  790. package/node_modules/@murphai/assistant-engine/dist/outbound-channel.js +4 -2
  791. package/node_modules/@murphai/assistant-engine/dist/outbound-channel.js.map +1 -1
  792. package/node_modules/@murphai/assistant-engine/skills/README.md +29 -0
  793. package/node_modules/@murphai/assistant-engine/skills/appointment-scheduling/SKILL.md +23 -0
  794. package/node_modules/@murphai/assistant-engine/skills/automatic-meal-capture/SKILL.md +180 -12
  795. package/node_modules/@murphai/assistant-engine/skills/behavior-followthrough/SKILL.md +155 -116
  796. package/node_modules/@murphai/assistant-engine/skills/body-composition/SKILL.md +137 -27
  797. package/node_modules/@murphai/assistant-engine/skills/body-composition/references/evidence.md +150 -0
  798. package/node_modules/@murphai/assistant-engine/skills/body-composition/references/fat-loss.md +132 -0
  799. package/node_modules/@murphai/assistant-engine/skills/body-composition/references/muscle-gain.md +135 -0
  800. package/node_modules/@murphai/assistant-engine/skills/body-composition/references/safety.md +171 -0
  801. package/node_modules/@murphai/assistant-engine/skills/body-composition/references/tracking-and-adjustment.md +193 -0
  802. package/node_modules/@murphai/assistant-engine/skills/cardiometabolic-health/SKILL.md +10 -1
  803. package/node_modules/@murphai/assistant-engine/skills/computer-use/SKILL.md +0 -4
  804. package/node_modules/@murphai/assistant-engine/skills/connected-apps/SKILL.md +86 -12
  805. package/node_modules/@murphai/assistant-engine/skills/connected-apps/references/provider-data-exports.md +209 -0
  806. package/node_modules/@murphai/assistant-engine/skills/daily-activity/SKILL.md +27 -4
  807. package/node_modules/@murphai/assistant-engine/skills/experiment-onboarding/SKILL.md +22 -9
  808. package/node_modules/@murphai/assistant-engine/skills/food-journal/SKILL.md +200 -14
  809. package/node_modules/@murphai/assistant-engine/skills/group-challenge/SKILL.md +17 -737
  810. package/node_modules/@murphai/assistant-engine/skills/group-challenge-scorecards/SKILL.md +17 -328
  811. package/node_modules/@murphai/assistant-engine/skills/group-chat/SKILL.md +18 -912
  812. package/node_modules/@murphai/assistant-engine/skills/group-newsletter/SKILL.md +16 -237
  813. package/node_modules/@murphai/assistant-engine/skills/groupchat-comedy/SKILL.md +19 -351
  814. package/node_modules/@murphai/assistant-engine/skills/hosted-low-usage/SKILL.md +310 -118
  815. package/node_modules/@murphai/assistant-engine/skills/micronutrients-supplements/SKILL.md +30 -8
  816. package/node_modules/@murphai/assistant-engine/skills/mobility-posture/SKILL.md +1 -1
  817. package/node_modules/@murphai/assistant-engine/skills/murph-family/SKILL.md +91 -26
  818. package/node_modules/@murphai/assistant-engine/skills/murph-onboarding/SKILL.md +75 -751
  819. package/node_modules/@murphai/assistant-engine/skills/murph-onboarding/references/aspiration-foundation-delegation.md +443 -0
  820. package/node_modules/@murphai/assistant-engine/skills/murph-onboarding/references/persistence-recovery-follow-up.md +155 -0
  821. package/node_modules/@murphai/assistant-engine/skills/murph-onboarding/references/return-launch-completion.md +246 -0
  822. package/node_modules/@murphai/assistant-engine/skills/music-generation/SKILL.md +31 -163
  823. package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/SKILL.md +84 -7
  824. package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/daily-nutrition-card-goals.md +313 -0
  825. package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/named-diets/carnivore-animal-based.md +145 -0
  826. package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/named-diets/dash.md +183 -0
  827. package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/named-diets/intermittent-fasting.md +153 -0
  828. package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/named-diets/ketogenic.md +149 -0
  829. package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/named-diets/low-carbohydrate.md +167 -0
  830. package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/named-diets/mediterranean.md +141 -0
  831. package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/named-diets/vegan-plant-based.md +175 -0
  832. package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/named-diets/vegetarian-spectrum.md +131 -0
  833. package/node_modules/@murphai/assistant-engine/skills/phone-calls/SKILL.md +47 -67
  834. package/node_modules/@murphai/assistant-engine/skills/physical-notes/SKILL.md +167 -0
  835. package/node_modules/@murphai/assistant-engine/skills/physical-therapy/SKILL.md +4 -2
  836. package/node_modules/@murphai/assistant-engine/skills/self-management-experiments/SKILL.md +19 -3
  837. package/node_modules/@murphai/assistant-engine/skills/shared/exercise-catalog-runtime.md +36 -19
  838. package/node_modules/@murphai/assistant-engine/skills/signup-link/SKILL.md +30 -0
  839. package/node_modules/@murphai/assistant-engine/skills/strength-training/SKILL.md +17 -1
  840. package/node_modules/@murphai/assistant-engine/skills/tracked-table/SKILL.md +292 -0
  841. package/node_modules/@murphai/assistant-engine/skills/workout-csv-import/SKILL.md +129 -0
  842. package/node_modules/@murphai/assistantd/dist/client.d.ts +2 -0
  843. package/node_modules/@murphai/assistantd/dist/client.d.ts.map +1 -1
  844. package/node_modules/@murphai/assistantd/dist/client.js +33 -0
  845. package/node_modules/@murphai/assistantd/dist/client.js.map +1 -1
  846. package/node_modules/@murphai/assistantd/dist/http-protocol.d.ts.map +1 -1
  847. package/node_modules/@murphai/assistantd/dist/http-protocol.js +25 -1
  848. package/node_modules/@murphai/assistantd/dist/http-protocol.js.map +1 -1
  849. package/node_modules/@murphai/clinical-records/dist/index.d.ts +660 -660
  850. package/node_modules/@murphai/clinical-records/dist/index.d.ts.map +1 -1
  851. package/node_modules/@murphai/clinical-records/dist/index.js +1 -1
  852. package/node_modules/@murphai/clinical-records/dist/index.js.map +1 -1
  853. package/node_modules/@murphai/core/dist/automation-availability.d.ts +51 -0
  854. package/node_modules/@murphai/core/dist/automation-availability.d.ts.map +1 -0
  855. package/node_modules/@murphai/core/dist/automation-availability.js +226 -0
  856. package/node_modules/@murphai/core/dist/automation-availability.js.map +1 -0
  857. package/node_modules/@murphai/core/dist/automation.d.ts +9 -2
  858. package/node_modules/@murphai/core/dist/automation.d.ts.map +1 -1
  859. package/node_modules/@murphai/core/dist/automation.js +121 -19
  860. package/node_modules/@murphai/core/dist/automation.js.map +1 -1
  861. package/node_modules/@murphai/core/dist/bank/habitat.d.ts +2 -0
  862. package/node_modules/@murphai/core/dist/bank/habitat.d.ts.map +1 -1
  863. package/node_modules/@murphai/core/dist/bank/habitat.js +35 -1
  864. package/node_modules/@murphai/core/dist/bank/habitat.js.map +1 -1
  865. package/node_modules/@murphai/core/dist/bank/regimens.js +1 -1
  866. package/node_modules/@murphai/core/dist/bank/regimens.js.map +1 -1
  867. package/node_modules/@murphai/core/dist/domains/events/attachment-backed.d.ts.map +1 -1
  868. package/node_modules/@murphai/core/dist/domains/events/attachment-backed.js +9 -123
  869. package/node_modules/@murphai/core/dist/domains/events/attachment-backed.js.map +1 -1
  870. package/node_modules/@murphai/core/dist/domains/events/capture-lookup.d.ts +33 -0
  871. package/node_modules/@murphai/core/dist/domains/events/capture-lookup.d.ts.map +1 -1
  872. package/node_modules/@murphai/core/dist/domains/events/capture-lookup.js +119 -0
  873. package/node_modules/@murphai/core/dist/domains/events/capture-lookup.js.map +1 -1
  874. package/node_modules/@murphai/core/dist/domains/events/generated-image-capture-retention.d.ts +24 -0
  875. package/node_modules/@murphai/core/dist/domains/events/generated-image-capture-retention.d.ts.map +1 -0
  876. package/node_modules/@murphai/core/dist/domains/events/generated-image-capture-retention.js +409 -0
  877. package/node_modules/@murphai/core/dist/domains/events/generated-image-capture-retention.js.map +1 -0
  878. package/node_modules/@murphai/core/dist/domains/events/ledger.d.ts +34 -0
  879. package/node_modules/@murphai/core/dist/domains/events/ledger.d.ts.map +1 -1
  880. package/node_modules/@murphai/core/dist/domains/events/ledger.js +188 -15
  881. package/node_modules/@murphai/core/dist/domains/events/ledger.js.map +1 -1
  882. package/node_modules/@murphai/core/dist/domains/events.d.ts +6 -2
  883. package/node_modules/@murphai/core/dist/domains/events.d.ts.map +1 -1
  884. package/node_modules/@murphai/core/dist/domains/events.js +3 -1
  885. package/node_modules/@murphai/core/dist/domains/events.js.map +1 -1
  886. package/node_modules/@murphai/core/dist/domains/experiments.d.ts.map +1 -1
  887. package/node_modules/@murphai/core/dist/domains/experiments.js +5 -1
  888. package/node_modules/@murphai/core/dist/domains/experiments.js.map +1 -1
  889. package/node_modules/@murphai/core/dist/history/api.d.ts +8 -5
  890. package/node_modules/@murphai/core/dist/history/api.d.ts.map +1 -1
  891. package/node_modules/@murphai/core/dist/history/api.js +268 -20
  892. package/node_modules/@murphai/core/dist/history/api.js.map +1 -1
  893. package/node_modules/@murphai/core/dist/index.d.ts +11 -6
  894. package/node_modules/@murphai/core/dist/index.d.ts.map +1 -1
  895. package/node_modules/@murphai/core/dist/index.js +8 -4
  896. package/node_modules/@murphai/core/dist/index.js.map +1 -1
  897. package/node_modules/@murphai/core/dist/memory.d.ts.map +1 -1
  898. package/node_modules/@murphai/core/dist/memory.js +1 -0
  899. package/node_modules/@murphai/core/dist/memory.js.map +1 -1
  900. package/node_modules/@murphai/core/dist/mutations.d.ts +45 -4
  901. package/node_modules/@murphai/core/dist/mutations.d.ts.map +1 -1
  902. package/node_modules/@murphai/core/dist/mutations.js +2204 -97
  903. package/node_modules/@murphai/core/dist/mutations.js.map +1 -1
  904. package/node_modules/@murphai/core/dist/operations/index.d.ts +1 -1
  905. package/node_modules/@murphai/core/dist/operations/index.d.ts.map +1 -1
  906. package/node_modules/@murphai/core/dist/operations/index.js +1 -1
  907. package/node_modules/@murphai/core/dist/operations/index.js.map +1 -1
  908. package/node_modules/@murphai/core/dist/operations/write-batch.d.ts +5 -0
  909. package/node_modules/@murphai/core/dist/operations/write-batch.d.ts.map +1 -1
  910. package/node_modules/@murphai/core/dist/operations/write-batch.js +40 -2
  911. package/node_modules/@murphai/core/dist/operations/write-batch.js.map +1 -1
  912. package/node_modules/@murphai/core/dist/protocols.d.ts.map +1 -1
  913. package/node_modules/@murphai/core/dist/protocols.js +52 -9
  914. package/node_modules/@murphai/core/dist/protocols.js.map +1 -1
  915. package/node_modules/@murphai/core/dist/public-mutations.d.ts +3 -2
  916. package/node_modules/@murphai/core/dist/public-mutations.d.ts.map +1 -1
  917. package/node_modules/@murphai/core/dist/public-mutations.js +9 -4
  918. package/node_modules/@murphai/core/dist/public-mutations.js.map +1 -1
  919. package/node_modules/@murphai/core/dist/scheduled-logs.d.ts +3 -0
  920. package/node_modules/@murphai/core/dist/scheduled-logs.d.ts.map +1 -1
  921. package/node_modules/@murphai/core/dist/scheduled-logs.js +65 -29
  922. package/node_modules/@murphai/core/dist/scheduled-logs.js.map +1 -1
  923. package/node_modules/@murphai/device-syncd/README.md +237 -0
  924. package/node_modules/@murphai/device-syncd/dist/client.d.ts +15 -0
  925. package/node_modules/@murphai/device-syncd/dist/client.d.ts.map +1 -1
  926. package/node_modules/@murphai/device-syncd/dist/client.js.map +1 -1
  927. package/node_modules/@murphai/device-syncd/dist/config/connect-routes.d.ts +29 -1
  928. package/node_modules/@murphai/device-syncd/dist/config/connect-routes.d.ts.map +1 -1
  929. package/node_modules/@murphai/device-syncd/dist/config/connect-routes.js +78 -2
  930. package/node_modules/@murphai/device-syncd/dist/config/connect-routes.js.map +1 -1
  931. package/node_modules/@murphai/device-syncd/dist/config/connect-targets.js +1 -1
  932. package/node_modules/@murphai/device-syncd/dist/config/connect-targets.js.map +1 -1
  933. package/node_modules/@murphai/device-syncd/dist/config/junction-client-config.d.ts +2 -1
  934. package/node_modules/@murphai/device-syncd/dist/config/junction-client-config.d.ts.map +1 -1
  935. package/node_modules/@murphai/device-syncd/dist/config/junction-client-config.js +2 -1
  936. package/node_modules/@murphai/device-syncd/dist/config/junction-client-config.js.map +1 -1
  937. package/node_modules/@murphai/device-syncd/dist/config/junction-config.d.ts +1 -0
  938. package/node_modules/@murphai/device-syncd/dist/config/junction-config.d.ts.map +1 -1
  939. package/node_modules/@murphai/device-syncd/dist/config/junction-config.js +9 -1
  940. package/node_modules/@murphai/device-syncd/dist/config/junction-config.js.map +1 -1
  941. package/node_modules/@murphai/device-syncd/dist/config/junction-connect-sources.js +2 -2
  942. package/node_modules/@murphai/device-syncd/dist/config/junction-connect-sources.js.map +1 -1
  943. package/node_modules/@murphai/device-syncd/dist/config/provider-configs.d.ts +2 -2
  944. package/node_modules/@murphai/device-syncd/dist/config/provider-configs.d.ts.map +1 -1
  945. package/node_modules/@murphai/device-syncd/dist/config/provider-configs.js +2 -2
  946. package/node_modules/@murphai/device-syncd/dist/config/provider-configs.js.map +1 -1
  947. package/node_modules/@murphai/device-syncd/dist/config/provider-env.d.ts +4 -2
  948. package/node_modules/@murphai/device-syncd/dist/config/provider-env.d.ts.map +1 -1
  949. package/node_modules/@murphai/device-syncd/dist/config/provider-env.js +6 -0
  950. package/node_modules/@murphai/device-syncd/dist/config/provider-env.js.map +1 -1
  951. package/node_modules/@murphai/device-syncd/dist/config/provider-manifests.d.ts +614 -0
  952. package/node_modules/@murphai/device-syncd/dist/config/provider-manifests.d.ts.map +1 -1
  953. package/node_modules/@murphai/device-syncd/dist/config/provider-manifests.js +216 -148
  954. package/node_modules/@murphai/device-syncd/dist/config/provider-manifests.js.map +1 -1
  955. package/node_modules/@murphai/device-syncd/dist/config/provider-types.d.ts +11 -0
  956. package/node_modules/@murphai/device-syncd/dist/config/provider-types.d.ts.map +1 -1
  957. package/node_modules/@murphai/device-syncd/dist/config/runtime-config.d.ts.map +1 -1
  958. package/node_modules/@murphai/device-syncd/dist/config/runtime-config.js +2 -2
  959. package/node_modules/@murphai/device-syncd/dist/config/runtime-config.js.map +1 -1
  960. package/node_modules/@murphai/device-syncd/dist/config/serializable-provider-configs.d.ts.map +1 -1
  961. package/node_modules/@murphai/device-syncd/dist/config/serializable-provider-configs.js +2 -0
  962. package/node_modules/@murphai/device-syncd/dist/config/serializable-provider-configs.js.map +1 -1
  963. package/node_modules/@murphai/device-syncd/dist/config.d.ts +1 -1
  964. package/node_modules/@murphai/device-syncd/dist/config.d.ts.map +1 -1
  965. package/node_modules/@murphai/device-syncd/dist/config.js +1 -1
  966. package/node_modules/@murphai/device-syncd/dist/config.js.map +1 -1
  967. package/node_modules/@murphai/device-syncd/dist/configured-provider-runtime-descriptors.d.ts +1 -1
  968. package/node_modules/@murphai/device-syncd/dist/configured-provider-runtime-descriptors.d.ts.map +1 -1
  969. package/node_modules/@murphai/device-syncd/dist/configured-provider-runtime-descriptors.js +1 -1
  970. package/node_modules/@murphai/device-syncd/dist/configured-provider-runtime-descriptors.js.map +1 -1
  971. package/node_modules/@murphai/device-syncd/dist/connect-config.d.ts +1 -1
  972. package/node_modules/@murphai/device-syncd/dist/connect-config.d.ts.map +1 -1
  973. package/node_modules/@murphai/device-syncd/dist/connect-config.js +1 -1
  974. package/node_modules/@murphai/device-syncd/dist/connect-config.js.map +1 -1
  975. package/node_modules/@murphai/device-syncd/dist/fitbit-migration.d.ts +57 -0
  976. package/node_modules/@murphai/device-syncd/dist/fitbit-migration.d.ts.map +1 -0
  977. package/node_modules/@murphai/device-syncd/dist/fitbit-migration.js +166 -0
  978. package/node_modules/@murphai/device-syncd/dist/fitbit-migration.js.map +1 -0
  979. package/node_modules/@murphai/device-syncd/dist/hosted-runtime.d.ts +87 -0
  980. package/node_modules/@murphai/device-syncd/dist/hosted-runtime.d.ts.map +1 -1
  981. package/node_modules/@murphai/device-syncd/dist/hosted-runtime.js +296 -6
  982. package/node_modules/@murphai/device-syncd/dist/hosted-runtime.js.map +1 -1
  983. package/node_modules/@murphai/device-syncd/dist/index.d.ts +1 -1
  984. package/node_modules/@murphai/device-syncd/dist/index.d.ts.map +1 -1
  985. package/node_modules/@murphai/device-syncd/dist/index.js +1 -1
  986. package/node_modules/@murphai/device-syncd/dist/index.js.map +1 -1
  987. package/node_modules/@murphai/device-syncd/dist/junction-historical-backfill-progress.d.ts +27 -0
  988. package/node_modules/@murphai/device-syncd/dist/junction-historical-backfill-progress.d.ts.map +1 -1
  989. package/node_modules/@murphai/device-syncd/dist/junction-historical-backfill-progress.js +464 -9
  990. package/node_modules/@murphai/device-syncd/dist/junction-historical-backfill-progress.js.map +1 -1
  991. package/node_modules/@murphai/device-syncd/dist/junction-inline-authority.d.ts +17 -2
  992. package/node_modules/@murphai/device-syncd/dist/junction-inline-authority.d.ts.map +1 -1
  993. package/node_modules/@murphai/device-syncd/dist/junction-inline-authority.js +99 -40
  994. package/node_modules/@murphai/device-syncd/dist/junction-inline-authority.js.map +1 -1
  995. package/node_modules/@murphai/device-syncd/dist/junction-resources.d.ts +16 -0
  996. package/node_modules/@murphai/device-syncd/dist/junction-resources.d.ts.map +1 -1
  997. package/node_modules/@murphai/device-syncd/dist/junction-resources.js +32 -0
  998. package/node_modules/@murphai/device-syncd/dist/junction-resources.js.map +1 -1
  999. package/node_modules/@murphai/device-syncd/dist/junction-source-reconnect.d.ts +17 -0
  1000. package/node_modules/@murphai/device-syncd/dist/junction-source-reconnect.d.ts.map +1 -0
  1001. package/node_modules/@murphai/device-syncd/dist/junction-source-reconnect.js +45 -0
  1002. package/node_modules/@murphai/device-syncd/dist/junction-source-reconnect.js.map +1 -0
  1003. package/node_modules/@murphai/device-syncd/dist/junction-timeseries-progress.d.ts +15 -0
  1004. package/node_modules/@murphai/device-syncd/dist/junction-timeseries-progress.d.ts.map +1 -0
  1005. package/node_modules/@murphai/device-syncd/dist/junction-timeseries-progress.js +24 -0
  1006. package/node_modules/@murphai/device-syncd/dist/junction-timeseries-progress.js.map +1 -0
  1007. package/node_modules/@murphai/device-syncd/dist/prepared-webhook.d.ts +29 -0
  1008. package/node_modules/@murphai/device-syncd/dist/prepared-webhook.d.ts.map +1 -0
  1009. package/node_modules/@murphai/device-syncd/dist/prepared-webhook.js +263 -0
  1010. package/node_modules/@murphai/device-syncd/dist/prepared-webhook.js.map +1 -0
  1011. package/node_modules/@murphai/device-syncd/dist/provider-configs.d.ts +1 -1
  1012. package/node_modules/@murphai/device-syncd/dist/provider-configs.d.ts.map +1 -1
  1013. package/node_modules/@murphai/device-syncd/dist/provider-configs.js +1 -1
  1014. package/node_modules/@murphai/device-syncd/dist/provider-configs.js.map +1 -1
  1015. package/node_modules/@murphai/device-syncd/dist/provider-label.d.ts +1 -0
  1016. package/node_modules/@murphai/device-syncd/dist/provider-label.d.ts.map +1 -1
  1017. package/node_modules/@murphai/device-syncd/dist/provider-label.js +4 -2
  1018. package/node_modules/@murphai/device-syncd/dist/provider-label.js.map +1 -1
  1019. package/node_modules/@murphai/device-syncd/dist/providers/junction-client.d.ts +30 -1
  1020. package/node_modules/@murphai/device-syncd/dist/providers/junction-client.d.ts.map +1 -1
  1021. package/node_modules/@murphai/device-syncd/dist/providers/junction-client.js +1005 -193
  1022. package/node_modules/@murphai/device-syncd/dist/providers/junction-client.js.map +1 -1
  1023. package/node_modules/@murphai/device-syncd/dist/providers/junction.d.ts +11 -2
  1024. package/node_modules/@murphai/device-syncd/dist/providers/junction.d.ts.map +1 -1
  1025. package/node_modules/@murphai/device-syncd/dist/providers/junction.js +5033 -310
  1026. package/node_modules/@murphai/device-syncd/dist/providers/junction.js.map +1 -1
  1027. package/node_modules/@murphai/device-syncd/dist/providers/oura.d.ts.map +1 -1
  1028. package/node_modules/@murphai/device-syncd/dist/providers/oura.js +2 -1
  1029. package/node_modules/@murphai/device-syncd/dist/providers/oura.js.map +1 -1
  1030. package/node_modules/@murphai/device-syncd/dist/providers/shared-oauth.d.ts +12 -3
  1031. package/node_modules/@murphai/device-syncd/dist/providers/shared-oauth.d.ts.map +1 -1
  1032. package/node_modules/@murphai/device-syncd/dist/providers/shared-oauth.js +50 -12
  1033. package/node_modules/@murphai/device-syncd/dist/providers/shared-oauth.js.map +1 -1
  1034. package/node_modules/@murphai/device-syncd/dist/providers/strava.d.ts +3 -1
  1035. package/node_modules/@murphai/device-syncd/dist/providers/strava.d.ts.map +1 -1
  1036. package/node_modules/@murphai/device-syncd/dist/providers/strava.js +51 -38
  1037. package/node_modules/@murphai/device-syncd/dist/providers/strava.js.map +1 -1
  1038. package/node_modules/@murphai/device-syncd/dist/providers/whoop.d.ts.map +1 -1
  1039. package/node_modules/@murphai/device-syncd/dist/providers/whoop.js +11 -1
  1040. package/node_modules/@murphai/device-syncd/dist/providers/whoop.js.map +1 -1
  1041. package/node_modules/@murphai/device-syncd/dist/public-account.d.ts +54 -2
  1042. package/node_modules/@murphai/device-syncd/dist/public-account.d.ts.map +1 -1
  1043. package/node_modules/@murphai/device-syncd/dist/public-account.js +243 -1
  1044. package/node_modules/@murphai/device-syncd/dist/public-account.js.map +1 -1
  1045. package/node_modules/@murphai/device-syncd/dist/public-ingress.d.ts +9 -2
  1046. package/node_modules/@murphai/device-syncd/dist/public-ingress.d.ts.map +1 -1
  1047. package/node_modules/@murphai/device-syncd/dist/public-ingress.js +634 -199
  1048. package/node_modules/@murphai/device-syncd/dist/public-ingress.js.map +1 -1
  1049. package/node_modules/@murphai/device-syncd/dist/service.d.ts +21 -4
  1050. package/node_modules/@murphai/device-syncd/dist/service.d.ts.map +1 -1
  1051. package/node_modules/@murphai/device-syncd/dist/service.js +728 -68
  1052. package/node_modules/@murphai/device-syncd/dist/service.js.map +1 -1
  1053. package/node_modules/@murphai/device-syncd/dist/source-staleness.d.ts +15 -0
  1054. package/node_modules/@murphai/device-syncd/dist/source-staleness.d.ts.map +1 -1
  1055. package/node_modules/@murphai/device-syncd/dist/source-staleness.js +25 -1
  1056. package/node_modules/@murphai/device-syncd/dist/source-staleness.js.map +1 -1
  1057. package/node_modules/@murphai/device-syncd/dist/store/accounts.d.ts +3 -1
  1058. package/node_modules/@murphai/device-syncd/dist/store/accounts.d.ts.map +1 -1
  1059. package/node_modules/@murphai/device-syncd/dist/store/accounts.js +25 -2
  1060. package/node_modules/@murphai/device-syncd/dist/store/accounts.js.map +1 -1
  1061. package/node_modules/@murphai/device-syncd/dist/store/hosted-account-hydration.d.ts.map +1 -1
  1062. package/node_modules/@murphai/device-syncd/dist/store/hosted-account-hydration.js +7 -1
  1063. package/node_modules/@murphai/device-syncd/dist/store/hosted-account-hydration.js.map +1 -1
  1064. package/node_modules/@murphai/device-syncd/dist/store/jobs.d.ts +22 -3
  1065. package/node_modules/@murphai/device-syncd/dist/store/jobs.d.ts.map +1 -1
  1066. package/node_modules/@murphai/device-syncd/dist/store/jobs.js +266 -21
  1067. package/node_modules/@murphai/device-syncd/dist/store/jobs.js.map +1 -1
  1068. package/node_modules/@murphai/device-syncd/dist/store/oauth-states.d.ts +3 -1
  1069. package/node_modules/@murphai/device-syncd/dist/store/oauth-states.d.ts.map +1 -1
  1070. package/node_modules/@murphai/device-syncd/dist/store/oauth-states.js +62 -4
  1071. package/node_modules/@murphai/device-syncd/dist/store/oauth-states.js.map +1 -1
  1072. package/node_modules/@murphai/device-syncd/dist/store/schema.d.ts +1 -1
  1073. package/node_modules/@murphai/device-syncd/dist/store/schema.d.ts.map +1 -1
  1074. package/node_modules/@murphai/device-syncd/dist/store/schema.js +25 -3
  1075. package/node_modules/@murphai/device-syncd/dist/store/schema.js.map +1 -1
  1076. package/node_modules/@murphai/device-syncd/dist/store/sources.d.ts +25 -2
  1077. package/node_modules/@murphai/device-syncd/dist/store/sources.d.ts.map +1 -1
  1078. package/node_modules/@murphai/device-syncd/dist/store/sources.js +268 -58
  1079. package/node_modules/@murphai/device-syncd/dist/store/sources.js.map +1 -1
  1080. package/node_modules/@murphai/device-syncd/dist/store/sync-state.d.ts +7 -2
  1081. package/node_modules/@murphai/device-syncd/dist/store/sync-state.d.ts.map +1 -1
  1082. package/node_modules/@murphai/device-syncd/dist/store/sync-state.js +82 -28
  1083. package/node_modules/@murphai/device-syncd/dist/store/sync-state.js.map +1 -1
  1084. package/node_modules/@murphai/device-syncd/dist/store/webhook-traces.js +2 -2
  1085. package/node_modules/@murphai/device-syncd/dist/store/webhook-traces.js.map +1 -1
  1086. package/node_modules/@murphai/device-syncd/dist/store.d.ts +30 -5
  1087. package/node_modules/@murphai/device-syncd/dist/store.d.ts.map +1 -1
  1088. package/node_modules/@murphai/device-syncd/dist/store.js +146 -13
  1089. package/node_modules/@murphai/device-syncd/dist/store.js.map +1 -1
  1090. package/node_modules/@murphai/device-syncd/dist/types.d.ts +260 -8
  1091. package/node_modules/@murphai/device-syncd/dist/types.d.ts.map +1 -1
  1092. package/node_modules/@murphai/device-syncd/dist/types.js +7 -0
  1093. package/node_modules/@murphai/device-syncd/dist/types.js.map +1 -1
  1094. package/node_modules/@murphai/device-syncd/package.json +16 -0
  1095. package/node_modules/@murphai/health-commons/content/biomarkers/bilirubin.md +18 -0
  1096. package/node_modules/@murphai/health-commons/content/biomarkers/carbon-dioxide.md +18 -0
  1097. package/node_modules/@murphai/health-commons/content/biomarkers/potassium.md +18 -0
  1098. package/node_modules/@murphai/health-commons/content/biomarkers/sodium.md +18 -0
  1099. package/node_modules/@murphai/health-commons/content/families/general-eye-health.md +190 -0
  1100. package/node_modules/@murphai/health-commons/content/families/photobiomodulation.md +97 -0
  1101. package/node_modules/@murphai/health-commons/content/families/recovery-modalities.md +73 -0
  1102. package/node_modules/@murphai/health-commons/content/protocols/whole-body-photobiomodulation/whole-body-red-and-near-infrared-light-exposure.md +1 -1
  1103. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/cdc-contact-lens-infection-symptoms.md +20 -0
  1104. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/cdc-contact-lens-prevention.md +20 -0
  1105. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/cdc-stroke-signs.md +20 -0
  1106. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/cochrane-blue-light-filtering-lenses.md +21 -0
  1107. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/fda-buying-contact-lenses.md +20 -0
  1108. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/fda-eye-drops.md +20 -0
  1109. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/imi-myopia-interventions.md +20 -0
  1110. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/medlineplus-eye-emergencies.md +20 -0
  1111. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/medlineplus-eye-pain.md +20 -0
  1112. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/nei-angle-closure-glaucoma.md +20 -0
  1113. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/nei-areds2-faq.md +20 -0
  1114. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/nei-contact-lenses.md +20 -0
  1115. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/nei-dry-eye.md +20 -0
  1116. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/nei-healthy-vision.md +21 -0
  1117. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/nei-myopia.md +20 -0
  1118. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/nei-retinal-detachment.md +20 -0
  1119. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/nih-dream-omega3-dry-eye.md +21 -0
  1120. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/osha-computer-monitors.md +20 -0
  1121. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/pmc-9840372.md +22 -0
  1122. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/pmid-35597519.md +21 -0
  1123. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/pmid-36473088.md +21 -0
  1124. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/pmid-37062428.md +21 -0
  1125. package/node_modules/@murphai/health-commons/content/sources/whole-body-photobiomodulation/clinicaltrials-gov-nct07047248-2026-04-23.md +0 -1
  1126. package/node_modules/@murphai/health-commons/dist/biomarker-fallback-ranges.d.ts +3 -0
  1127. package/node_modules/@murphai/health-commons/dist/biomarker-fallback-ranges.d.ts.map +1 -0
  1128. package/node_modules/@murphai/health-commons/dist/biomarker-fallback-ranges.js +2 -0
  1129. package/node_modules/@murphai/health-commons/dist/biomarker-fallback-ranges.js.map +1 -0
  1130. package/node_modules/@murphai/health-commons/dist/biomarker-runtime-artifacts.d.ts +17 -0
  1131. package/node_modules/@murphai/health-commons/dist/biomarker-runtime-artifacts.d.ts.map +1 -0
  1132. package/node_modules/@murphai/health-commons/dist/biomarker-runtime-artifacts.js +16 -0
  1133. package/node_modules/@murphai/health-commons/dist/biomarker-runtime-artifacts.js.map +1 -0
  1134. package/node_modules/@murphai/health-commons/dist/build.d.ts.map +1 -1
  1135. package/node_modules/@murphai/health-commons/dist/build.js +41 -7
  1136. package/node_modules/@murphai/health-commons/dist/build.js.map +1 -1
  1137. package/node_modules/@murphai/health-commons/dist/index.d.ts +1 -0
  1138. package/node_modules/@murphai/health-commons/dist/index.d.ts.map +1 -1
  1139. package/node_modules/@murphai/health-commons/dist/index.js +1 -0
  1140. package/node_modules/@murphai/health-commons/dist/index.js.map +1 -1
  1141. package/node_modules/@murphai/health-commons/dist/knowledge-index.d.ts +44 -0
  1142. package/node_modules/@murphai/health-commons/dist/knowledge-index.d.ts.map +1 -0
  1143. package/node_modules/@murphai/health-commons/dist/knowledge-index.js +540 -0
  1144. package/node_modules/@murphai/health-commons/dist/knowledge-index.js.map +1 -0
  1145. package/node_modules/@murphai/health-commons/dist/runtime.d.ts +17 -1
  1146. package/node_modules/@murphai/health-commons/dist/runtime.d.ts.map +1 -1
  1147. package/node_modules/@murphai/health-commons/dist/runtime.js +58 -4
  1148. package/node_modules/@murphai/health-commons/dist/runtime.js.map +1 -1
  1149. package/node_modules/@murphai/health-commons/generated/biomarker-desired-directions.json +410 -0
  1150. package/node_modules/@murphai/health-commons/generated/catalog.hash +1 -1
  1151. package/node_modules/@murphai/health-commons/generated/knowledge.sqlite +0 -0
  1152. package/node_modules/@murphai/health-commons/generated/protocol-family-graph.json +187 -46
  1153. package/node_modules/@murphai/health-commons/generated/protocol-index.json +47 -47
  1154. package/node_modules/@murphai/health-commons/generated/protocol-run-specs.json +967 -967
  1155. package/node_modules/@murphai/health-commons/generated/source-artifact-index.json +1 -1
  1156. package/node_modules/@murphai/health-commons/generated/source-identities.ndjson +28 -0
  1157. package/node_modules/@murphai/health-commons/generated/source-index.json +694 -2
  1158. package/node_modules/@murphai/health-commons/generated/web/browse/biomarkers.json +77 -9
  1159. package/node_modules/@murphai/health-commons/generated/web/browse/experiments.json +37 -37
  1160. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/absolute-basophils.json +1 -1
  1161. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/absolute-eosinophils.json +1 -1
  1162. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/absolute-immature-granulocytes.json +1 -1
  1163. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/absolute-lymphocytes.json +1 -1
  1164. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/absolute-monocytes.json +1 -1
  1165. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/absolute-neutrophils.json +1 -1
  1166. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/added-sugar-intake.json +1 -1
  1167. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/adherence.json +1 -1
  1168. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/adjusted-calcium.json +1 -1
  1169. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/adverse-symptoms.json +1 -1
  1170. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/alanine-aminotransferase.json +1 -1
  1171. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/albumin-globulin-ratio.json +1 -1
  1172. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/albumin.json +1 -1
  1173. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/alcohol-craving.json +1 -1
  1174. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/alcohol-free-days.json +1 -1
  1175. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/alcohol-intake.json +1 -1
  1176. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/alcohol-withdrawal-symptoms.json +1 -1
  1177. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/alkaline-phosphatase.json +1 -1
  1178. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ana-screen.json +1 -1
  1179. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/anion-gap.json +1 -1
  1180. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ankle-knee-to-wall-distance.json +1 -1
  1181. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/apolipoprotein-b.json +1 -1
  1182. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/arachidonic-acid-epa-ratio.json +1 -1
  1183. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/arachidonic-acid.json +1 -1
  1184. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/aspartate-aminotransferase.json +1 -1
  1185. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/basophil-percentage.json +1 -1
  1186. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/bedtime-delay.json +1 -1
  1187. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/bilirubin.json +3 -3
  1188. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/blood-glucose.json +1 -1
  1189. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/blood-ketones-beta-hydroxybutyrate.json +1 -1
  1190. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/blood-oxygen-spo2.json +1 -1
  1191. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/blood-pressure.json +1 -1
  1192. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/blood-urea-nitrogen.json +1 -1
  1193. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/body-fat-percent.json +1 -1
  1194. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/body-weight.json +1 -1
  1195. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/bun-creatinine-ratio.json +1 -1
  1196. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/c-peptide.json +1 -1
  1197. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/calcium.json +1 -1
  1198. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/carbon-dioxide.json +3 -3
  1199. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/chloride.json +1 -1
  1200. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/cholesterol-hdl-ratio.json +1 -1
  1201. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/chosen-primary-outcome-score.json +1 -1
  1202. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/continuous-glucose.json +1 -1
  1203. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/cortisol.json +1 -1
  1204. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/creatine-kinase.json +1 -1
  1205. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/daily-energy-intake-kcal.json +1 -1
  1206. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/daily-protein-g-per-kg.json +1 -1
  1207. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/daily-protein-grams.json +1 -1
  1208. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/daily-step-count.json +1 -1
  1209. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/daytime-sleepiness.json +1 -1
  1210. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/deep-sleep-minutes.json +4 -4
  1211. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/dha.json +1 -1
  1212. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/dhea-sulfate.json +1 -1
  1213. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/dietary-fiber-g-day.json +1 -1
  1214. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/digestive-comfort.json +1 -1
  1215. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/dpa.json +1 -1
  1216. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/egfr-ckd-epi.json +1 -1
  1217. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/egfr.json +1 -1
  1218. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/eosinophil-percentage.json +1 -1
  1219. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/epa.json +1 -1
  1220. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/estimated-gfr.json +1 -1
  1221. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/estimated-vo2max.json +1 -1
  1222. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/estradiol.json +1 -1
  1223. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/fasting-triglycerides.json +1 -1
  1224. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ferritin.json +1 -1
  1225. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/fib4.json +1 -1
  1226. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/follicle-stimulating-hormone.json +1 -1
  1227. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/free-t3.json +1 -1
  1228. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/free-t4.json +1 -1
  1229. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/free-testosterone.json +1 -1
  1230. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/gfr-mdrd-af-amer.json +1 -1
  1231. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/gfr-mdrd-non-af-amer.json +1 -1
  1232. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ggt.json +1 -1
  1233. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/gi-symptom-score.json +1 -1
  1234. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/gi-tolerance.json +1 -1
  1235. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/hba1c.json +1 -1
  1236. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/hbot-session-tolerability.json +1 -1
  1237. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/hdl-c.json +1 -1
  1238. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/hematocrit.json +1 -1
  1239. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/hemoglobin.json +1 -1
  1240. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/homocysteine.json +1 -1
  1241. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/hrv-rmssd.json +4 -4
  1242. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/hs-crp.json +1 -1
  1243. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/immature-granulocyte-percentage.json +1 -1
  1244. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/insulin.json +1 -1
  1245. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/iron-saturation.json +1 -1
  1246. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/iron.json +1 -1
  1247. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/lateral-knee-pain.json +1 -1
  1248. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldh.json +1 -1
  1249. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldl-c.json +1 -1
  1250. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldl-calculated.json +1 -1
  1251. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldl-chol-calc-nih.json +1 -1
  1252. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldl-cholesterol.json +1 -1
  1253. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldl-large-particles.json +1 -1
  1254. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldl-medium-particles.json +1 -1
  1255. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldl-particle-number.json +1 -1
  1256. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldl-pattern.json +1 -1
  1257. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldl-peak-size.json +1 -1
  1258. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldl-small-particles.json +1 -1
  1259. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/lead.json +1 -1
  1260. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/lean-body-mass.json +1 -1
  1261. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/lean-mass.json +1 -1
  1262. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/leg-heaviness-score.json +1 -1
  1263. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/linoleic-acid.json +1 -1
  1264. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/lipoprotein-a.json +1 -1
  1265. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/liver-enzyme-panel.json +1 -1
  1266. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/luteinizing-hormone.json +1 -1
  1267. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/lymphocyte-percentage.json +1 -1
  1268. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/macular-health-safety.json +1 -1
  1269. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/magnesium-rbc.json +1 -1
  1270. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/mean-corpuscular-hemoglobin-concentration.json +1 -1
  1271. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/mean-corpuscular-hemoglobin.json +1 -1
  1272. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/mean-corpuscular-volume.json +1 -1
  1273. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/mean-platelet-volume.json +1 -1
  1274. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/mercury.json +1 -1
  1275. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/methylmalonic-acid.json +1 -1
  1276. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/moderate-to-vigorous-activity-minutes.json +1 -1
  1277. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/monocyte-percentage.json +1 -1
  1278. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/mood-affect.json +1 -1
  1279. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/morning-blood-pressure.json +1 -1
  1280. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/muscle-soreness-score.json +1 -1
  1281. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/musculoskeletal-pain.json +1 -1
  1282. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/neutrophil-percentage.json +1 -1
  1283. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/non-hdl-c.json +1 -1
  1284. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/non-hdl-cholesterol.json +1 -1
  1285. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/omega-3-index.json +1 -1
  1286. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/omega-3-total-omegacheck.json +1 -1
  1287. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/omega-6-3-ratio.json +1 -1
  1288. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/omega-6-total.json +1 -1
  1289. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/omegacheck-total.json +1 -1
  1290. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/perceived-recovery-score.json +1 -1
  1291. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/perceived-recovery.json +1 -1
  1292. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/perceived-stiffness.json +1 -1
  1293. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/perceived-stress.json +1 -1
  1294. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/periocular-wrinkle-score.json +1 -1
  1295. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/phosphate.json +1 -1
  1296. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/platelet-count.json +1 -1
  1297. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/poc-troponin-i.json +1 -1
  1298. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/postprandial-glucose-excursion.json +1 -1
  1299. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/potassium.json +3 -3
  1300. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/pre-sleep-arousal.json +1 -1
  1301. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/prolactin.json +1 -1
  1302. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/psa-free.json +1 -1
  1303. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/psa-percent-free.json +1 -1
  1304. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/psa-total.json +1 -1
  1305. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/red-blood-cell-count.json +1 -1
  1306. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/red-cell-distribution-width.json +1 -1
  1307. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/rem-sleep-minutes.json +1 -1
  1308. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/resting-heart-rate.json +4 -4
  1309. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/rheumatoid-factor.json +1 -1
  1310. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/running-tolerance.json +1 -1
  1311. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/saturated-fat-g-day.json +1 -1
  1312. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/sedentary-time.json +1 -1
  1313. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/self-reported-mood.json +1 -1
  1314. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/serum-25-hydroxyvitamin-d.json +1 -1
  1315. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/serum-creatinine.json +1 -1
  1316. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/serum-uric-acid.json +1 -1
  1317. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/sex-hormone-binding-globulin.json +1 -1
  1318. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/shoulder-reach-distance.json +1 -1
  1319. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/sit-and-reach-distance.json +1 -1
  1320. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/skin-texture-roughness-score.json +1 -1
  1321. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/skin-tolerability-symptoms.json +1 -1
  1322. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/sleep-efficiency.json +4 -4
  1323. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/sleep-onset-latency.json +1 -1
  1324. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/sleep-quality.json +1 -1
  1325. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/sodium.json +3 -3
  1326. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/standardized-skin-photo-score.json +1 -1
  1327. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/step-floor-days.json +1 -1
  1328. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/stretching-adherence-sessions.json +1 -1
  1329. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/stretching-session-burden.json +1 -1
  1330. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/stretching-symptoms.json +1 -1
  1331. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/subjective-eye-strain.json +1 -1
  1332. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/subjective-satiety.json +1 -1
  1333. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/supplement-adherence.json +1 -1
  1334. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/task-performance.json +1 -1
  1335. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/thyroglobulin-antibodies.json +1 -1
  1336. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/thyroid-peroxidase-antibodies.json +1 -1
  1337. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/thyroid-stimulating-hormone.json +1 -1
  1338. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/toe-touch-distance.json +1 -1
  1339. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/total-cholesterol.json +1 -1
  1340. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/total-globulin.json +1 -1
  1341. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/total-iron-binding-capacity.json +1 -1
  1342. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/total-protein.json +1 -1
  1343. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/total-sleep-time.json +1 -1
  1344. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/total-testosterone.json +1 -1
  1345. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/training-performance.json +1 -1
  1346. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/training-volume.json +1 -1
  1347. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/triglycerides.json +1 -1
  1348. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/urine-albumin-creatinine-ratio.json +1 -1
  1349. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/urine-albumin-random-without-creatinine.json +1 -1
  1350. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/urine-protein.json +1 -1
  1351. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/visual-fatigue.json +1 -1
  1352. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/visual-performance.json +1 -1
  1353. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/vldl-cholesterol-calculated.json +1 -1
  1354. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/waist-circumference.json +1 -1
  1355. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/wake-after-sleep-onset.json +1 -1
  1356. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/wake-time-variability.json +1 -1
  1357. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/walking-bout-minutes.json +1 -1
  1358. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/walking-cadence.json +1 -1
  1359. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/walking-safety-events.json +1 -1
  1360. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/white-blood-cell-count.json +1 -1
  1361. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/zinc.json +1 -1
  1362. package/node_modules/@murphai/health-commons/generated/web/bundles/measurement_method/clinic-imaging-upgrade.json +1 -1
  1363. package/node_modules/@murphai/health-commons/generated/web/bundles/measurement_method/home-standardized-photo-roi-analysis.json +1 -1
  1364. package/node_modules/@murphai/health-commons/generated/web/bundles/measurement_method/standardized-photo-score-workflow.json +1 -1
  1365. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/bryan-johnson-blueprint.json +1 -1
  1366. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/cold-plunge.json +1 -1
  1367. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/consistent-wake-time.json +1 -1
  1368. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/daily-step-floor.json +1 -1
  1369. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/finnish-sauna.json +1 -1
  1370. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/five-minute-tomorrow-list.json +1 -1
  1371. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/hyperbaric-oxygen-therapy.json +1 -1
  1372. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/morning-outdoor-light-exposure.json +1 -1
  1373. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/no-added-sugar-diet.json +1 -1
  1374. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/norwegian-4x4.json +1 -1
  1375. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/pneumatic-compression-pants.json +1 -1
  1376. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/protein-floor-high-protein-intake.json +3 -3
  1377. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/tabata-20-10-interval-training.json +1 -1
  1378. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/time-restricted-eating-18-6.json +1 -1
  1379. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/walking-after-every-meal.json +1 -1
  1380. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/whole-body-red-and-near-infrared-light-exposure.json +7 -8
  1381. package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/blood-oxygen-spo2/overview.json +1 -1
  1382. package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/blood-oxygen-spo2/research.json +1 -1
  1383. package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/deep-sleep-minutes/overview.json +2 -2
  1384. package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/deep-sleep-minutes/research.json +1 -1
  1385. package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/estimated-vo2max/overview.json +1 -1
  1386. package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/estimated-vo2max/research.json +1 -1
  1387. package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/hrv-rmssd/overview.json +2 -2
  1388. package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/hrv-rmssd/research.json +1 -1
  1389. package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/rem-sleep-minutes/overview.json +1 -1
  1390. package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/rem-sleep-minutes/research.json +1 -1
  1391. package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/resting-heart-rate/overview.json +2 -2
  1392. package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/resting-heart-rate/research.json +1 -1
  1393. package/node_modules/@murphai/health-commons/generated/web/routes/index.json +1 -1
  1394. package/node_modules/@murphai/health-commons/generated/web/shell/biomarkers/blood-oxygen-spo2.json +1 -1
  1395. package/node_modules/@murphai/health-commons/generated/web/shell/biomarkers/deep-sleep-minutes.json +1 -1
  1396. package/node_modules/@murphai/health-commons/generated/web/shell/biomarkers/estimated-vo2max.json +1 -1
  1397. package/node_modules/@murphai/health-commons/generated/web/shell/biomarkers/hrv-rmssd.json +1 -1
  1398. package/node_modules/@murphai/health-commons/generated/web/shell/biomarkers/rem-sleep-minutes.json +1 -1
  1399. package/node_modules/@murphai/health-commons/generated/web/shell/biomarkers/resting-heart-rate.json +1 -1
  1400. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/bryan-johnson-blueprint.json +1 -1
  1401. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/cold-plunge.json +1 -1
  1402. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/consistent-wake-time.json +1 -1
  1403. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/daily-step-floor.json +1 -1
  1404. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/finnish-sauna.json +1 -1
  1405. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/five-minute-tomorrow-list.json +1 -1
  1406. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/hyperbaric-oxygen-therapy.json +1 -1
  1407. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/morning-outdoor-light-exposure.json +1 -1
  1408. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/no-added-sugar-diet.json +1 -1
  1409. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/norwegian-4x4.json +1 -1
  1410. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/pneumatic-compression-pants.json +1 -1
  1411. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/protein-floor-high-protein-intake.json +1 -1
  1412. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/tabata-20-10-interval-training.json +1 -1
  1413. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/time-restricted-eating-18-6.json +1 -1
  1414. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/walking-after-every-meal.json +1 -1
  1415. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/whole-body-red-and-near-infrared-light-exposure.json +3 -3
  1416. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/bryan-johnson-blueprint/protocol.json +1 -1
  1417. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/bryan-johnson-blueprint/research.json +1 -1
  1418. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/bryan-johnson-blueprint/results-public.json +2 -2
  1419. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/cold-plunge/protocol.json +1 -1
  1420. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/cold-plunge/research.json +1 -1
  1421. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/cold-plunge/results-public.json +2 -2
  1422. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/consistent-wake-time/protocol.json +1 -1
  1423. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/consistent-wake-time/research.json +1 -1
  1424. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/consistent-wake-time/results-public.json +2 -2
  1425. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/daily-step-floor/protocol.json +1 -1
  1426. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/daily-step-floor/research.json +1 -1
  1427. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/daily-step-floor/results-public.json +2 -2
  1428. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/finnish-sauna/protocol.json +1 -1
  1429. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/finnish-sauna/research.json +1 -1
  1430. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/finnish-sauna/results-public.json +2 -2
  1431. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/five-minute-tomorrow-list/protocol.json +1 -1
  1432. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/five-minute-tomorrow-list/research.json +1 -1
  1433. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/five-minute-tomorrow-list/results-public.json +2 -2
  1434. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/hyperbaric-oxygen-therapy/protocol.json +1 -1
  1435. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/hyperbaric-oxygen-therapy/research.json +1 -1
  1436. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/hyperbaric-oxygen-therapy/results-public.json +2 -2
  1437. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/morning-outdoor-light-exposure/protocol.json +1 -1
  1438. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/morning-outdoor-light-exposure/research.json +1 -1
  1439. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/morning-outdoor-light-exposure/results-public.json +2 -2
  1440. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/no-added-sugar-diet/protocol.json +1 -1
  1441. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/no-added-sugar-diet/research.json +1 -1
  1442. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/no-added-sugar-diet/results-public.json +2 -2
  1443. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/norwegian-4x4/protocol.json +1 -1
  1444. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/norwegian-4x4/research.json +1 -1
  1445. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/norwegian-4x4/results-public.json +2 -2
  1446. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/pneumatic-compression-pants/protocol.json +1 -1
  1447. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/pneumatic-compression-pants/research.json +1 -1
  1448. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/pneumatic-compression-pants/results-public.json +2 -2
  1449. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/protein-floor-high-protein-intake/protocol.json +1 -1
  1450. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/protein-floor-high-protein-intake/research.json +1 -1
  1451. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/protein-floor-high-protein-intake/results-public.json +2 -2
  1452. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/tabata-20-10-interval-training/protocol.json +1 -1
  1453. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/tabata-20-10-interval-training/research.json +1 -1
  1454. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/tabata-20-10-interval-training/results-public.json +2 -2
  1455. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/time-restricted-eating-18-6/protocol.json +1 -1
  1456. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/time-restricted-eating-18-6/research.json +1 -1
  1457. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/time-restricted-eating-18-6/results-public.json +2 -2
  1458. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/walking-after-every-meal/protocol.json +1 -1
  1459. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/walking-after-every-meal/research.json +1 -1
  1460. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/walking-after-every-meal/results-public.json +2 -2
  1461. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/whole-body-red-and-near-infrared-light-exposure/protocol.json +3 -3
  1462. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/whole-body-red-and-near-infrared-light-exposure/research.json +3 -3
  1463. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/whole-body-red-and-near-infrared-light-exposure/results-public.json +5 -5
  1464. package/node_modules/@murphai/health-commons/package.json +5 -0
  1465. package/node_modules/@murphai/health-metrics/dist/catalog.d.ts.map +1 -1
  1466. package/node_modules/@murphai/health-metrics/dist/catalog.js +22 -2
  1467. package/node_modules/@murphai/health-metrics/dist/catalog.js.map +1 -1
  1468. package/node_modules/@murphai/health-metrics/dist/definitions/activity.d.ts.map +1 -1
  1469. package/node_modules/@murphai/health-metrics/dist/definitions/activity.js +165 -0
  1470. package/node_modules/@murphai/health-metrics/dist/definitions/activity.js.map +1 -1
  1471. package/node_modules/@murphai/health-metrics/dist/definitions/body.d.ts.map +1 -1
  1472. package/node_modules/@murphai/health-metrics/dist/definitions/body.js +69 -2
  1473. package/node_modules/@murphai/health-metrics/dist/definitions/body.js.map +1 -1
  1474. package/node_modules/@murphai/health-metrics/dist/definitions/physiology.d.ts +55 -0
  1475. package/node_modules/@murphai/health-metrics/dist/definitions/physiology.d.ts.map +1 -0
  1476. package/node_modules/@murphai/health-metrics/dist/definitions/physiology.js +92 -0
  1477. package/node_modules/@murphai/health-metrics/dist/definitions/physiology.js.map +1 -0
  1478. package/node_modules/@murphai/health-metrics/dist/definitions/vitals.d.ts +1 -1
  1479. package/node_modules/@murphai/health-metrics/dist/index.d.ts +1 -0
  1480. package/node_modules/@murphai/health-metrics/dist/index.d.ts.map +1 -1
  1481. package/node_modules/@murphai/health-metrics/dist/index.js +1 -0
  1482. package/node_modules/@murphai/health-metrics/dist/index.js.map +1 -1
  1483. package/node_modules/@murphai/health-metrics/dist/lab-reference-ranges.d.ts +45 -0
  1484. package/node_modules/@murphai/health-metrics/dist/lab-reference-ranges.d.ts.map +1 -0
  1485. package/node_modules/@murphai/health-metrics/dist/lab-reference-ranges.js +502 -0
  1486. package/node_modules/@murphai/health-metrics/dist/lab-reference-ranges.js.map +1 -0
  1487. package/node_modules/@murphai/health-metrics/dist/normalize.d.ts.map +1 -1
  1488. package/node_modules/@murphai/health-metrics/dist/normalize.js +5 -0
  1489. package/node_modules/@murphai/health-metrics/dist/normalize.js.map +1 -1
  1490. package/node_modules/@murphai/health-metrics/dist/selectors.d.ts +3 -0
  1491. package/node_modules/@murphai/health-metrics/dist/selectors.d.ts.map +1 -1
  1492. package/node_modules/@murphai/health-metrics/dist/selectors.js +52 -6
  1493. package/node_modules/@murphai/health-metrics/dist/selectors.js.map +1 -1
  1494. package/node_modules/@murphai/health-metrics/dist/types.d.ts +1 -0
  1495. package/node_modules/@murphai/health-metrics/dist/types.d.ts.map +1 -1
  1496. package/node_modules/@murphai/health-metrics/dist/wearable-metric-catalog.d.ts +12 -1
  1497. package/node_modules/@murphai/health-metrics/dist/wearable-metric-catalog.d.ts.map +1 -1
  1498. package/node_modules/@murphai/health-metrics/dist/wearable-metric-catalog.js +34 -1
  1499. package/node_modules/@murphai/health-metrics/dist/wearable-metric-catalog.js.map +1 -1
  1500. package/node_modules/@murphai/health-metrics/dist/wearable-provider-catalog.d.ts +79 -0
  1501. package/node_modules/@murphai/health-metrics/dist/wearable-provider-catalog.d.ts.map +1 -1
  1502. package/node_modules/@murphai/health-metrics/dist/wearable-provider-catalog.js +19 -0
  1503. package/node_modules/@murphai/health-metrics/dist/wearable-provider-catalog.js.map +1 -1
  1504. package/node_modules/@murphai/importers/README.md +2 -0
  1505. package/node_modules/@murphai/importers/dist/assessment/import-assessment-response.js +1 -1
  1506. package/node_modules/@murphai/importers/dist/assessment/import-assessment-response.js.map +1 -1
  1507. package/node_modules/@murphai/importers/dist/core-port.d.ts +16 -1
  1508. package/node_modules/@murphai/importers/dist/core-port.d.ts.map +1 -1
  1509. package/node_modules/@murphai/importers/dist/core-port.js.map +1 -1
  1510. package/node_modules/@murphai/importers/dist/create-importers.d.ts +9 -1
  1511. package/node_modules/@murphai/importers/dist/create-importers.d.ts.map +1 -1
  1512. package/node_modules/@murphai/importers/dist/create-importers.js +12 -2
  1513. package/node_modules/@murphai/importers/dist/create-importers.js.map +1 -1
  1514. package/node_modules/@murphai/importers/dist/csv-sample-import-planner.d.ts +1 -0
  1515. package/node_modules/@murphai/importers/dist/csv-sample-import-planner.d.ts.map +1 -1
  1516. package/node_modules/@murphai/importers/dist/csv-sample-import-planner.js +1 -1
  1517. package/node_modules/@murphai/importers/dist/csv-sample-import-planner.js.map +1 -1
  1518. package/node_modules/@murphai/importers/dist/device-providers/import-device-provider-snapshot.d.ts +17 -3
  1519. package/node_modules/@murphai/importers/dist/device-providers/import-device-provider-snapshot.d.ts.map +1 -1
  1520. package/node_modules/@murphai/importers/dist/device-providers/import-device-provider-snapshot.js +103 -9
  1521. package/node_modules/@murphai/importers/dist/device-providers/import-device-provider-snapshot.js.map +1 -1
  1522. package/node_modules/@murphai/importers/dist/device-providers/index.d.ts +5 -4
  1523. package/node_modules/@murphai/importers/dist/device-providers/index.d.ts.map +1 -1
  1524. package/node_modules/@murphai/importers/dist/device-providers/index.js +4 -3
  1525. package/node_modules/@murphai/importers/dist/device-providers/index.js.map +1 -1
  1526. package/node_modules/@murphai/importers/dist/device-providers/junction-bounded-features.d.ts +37 -0
  1527. package/node_modules/@murphai/importers/dist/device-providers/junction-bounded-features.d.ts.map +1 -0
  1528. package/node_modules/@murphai/importers/dist/device-providers/junction-bounded-features.js +796 -0
  1529. package/node_modules/@murphai/importers/dist/device-providers/junction-bounded-features.js.map +1 -0
  1530. package/node_modules/@murphai/importers/dist/device-providers/junction-origin.d.ts +1 -0
  1531. package/node_modules/@murphai/importers/dist/device-providers/junction-origin.d.ts.map +1 -1
  1532. package/node_modules/@murphai/importers/dist/device-providers/junction-origin.js +7 -2
  1533. package/node_modules/@murphai/importers/dist/device-providers/junction-origin.js.map +1 -1
  1534. package/node_modules/@murphai/importers/dist/device-providers/junction-resources.d.ts +7 -12
  1535. package/node_modules/@murphai/importers/dist/device-providers/junction-resources.d.ts.map +1 -1
  1536. package/node_modules/@murphai/importers/dist/device-providers/junction-resources.js +55 -103
  1537. package/node_modules/@murphai/importers/dist/device-providers/junction-resources.js.map +1 -1
  1538. package/node_modules/@murphai/importers/dist/device-providers/junction-timeseries-features.d.ts +79 -0
  1539. package/node_modules/@murphai/importers/dist/device-providers/junction-timeseries-features.d.ts.map +1 -0
  1540. package/node_modules/@murphai/importers/dist/device-providers/junction-timeseries-features.js +356 -0
  1541. package/node_modules/@murphai/importers/dist/device-providers/junction-timeseries-features.js.map +1 -0
  1542. package/node_modules/@murphai/importers/dist/device-providers/junction-timeseries-fidelity.d.ts +285 -0
  1543. package/node_modules/@murphai/importers/dist/device-providers/junction-timeseries-fidelity.d.ts.map +1 -0
  1544. package/node_modules/@murphai/importers/dist/device-providers/junction-timeseries-fidelity.js +870 -0
  1545. package/node_modules/@murphai/importers/dist/device-providers/junction-timeseries-fidelity.js.map +1 -0
  1546. package/node_modules/@murphai/importers/dist/device-providers/junction.d.ts +111 -0
  1547. package/node_modules/@murphai/importers/dist/device-providers/junction.d.ts.map +1 -1
  1548. package/node_modules/@murphai/importers/dist/device-providers/junction.js +4058 -306
  1549. package/node_modules/@murphai/importers/dist/device-providers/junction.js.map +1 -1
  1550. package/node_modules/@murphai/importers/dist/device-providers/oura.js +1 -1
  1551. package/node_modules/@murphai/importers/dist/device-providers/oura.js.map +1 -1
  1552. package/node_modules/@murphai/importers/dist/device-providers/shared-normalization.d.ts.map +1 -1
  1553. package/node_modules/@murphai/importers/dist/device-providers/shared-normalization.js +1 -0
  1554. package/node_modules/@murphai/importers/dist/device-providers/shared-normalization.js.map +1 -1
  1555. package/node_modules/@murphai/importers/dist/device-providers/types.d.ts +9 -1
  1556. package/node_modules/@murphai/importers/dist/device-providers/types.d.ts.map +1 -1
  1557. package/node_modules/@murphai/importers/dist/device-providers/whoop.js +1 -1
  1558. package/node_modules/@murphai/importers/dist/device-providers/whoop.js.map +1 -1
  1559. package/node_modules/@murphai/importers/dist/document-importer.d.ts +1 -0
  1560. package/node_modules/@murphai/importers/dist/document-importer.d.ts.map +1 -1
  1561. package/node_modules/@murphai/importers/dist/document-importer.js +3 -1
  1562. package/node_modules/@murphai/importers/dist/document-importer.js.map +1 -1
  1563. package/node_modules/@murphai/importers/dist/index.d.ts +3 -2
  1564. package/node_modules/@murphai/importers/dist/index.d.ts.map +1 -1
  1565. package/node_modules/@murphai/importers/dist/index.js +2 -1
  1566. package/node_modules/@murphai/importers/dist/index.js.map +1 -1
  1567. package/node_modules/@murphai/importers/dist/meal-importer.d.ts.map +1 -1
  1568. package/node_modules/@murphai/importers/dist/meal-importer.js +2 -1
  1569. package/node_modules/@murphai/importers/dist/meal-importer.js.map +1 -1
  1570. package/node_modules/@murphai/importers/dist/preset-registry.js +1 -1
  1571. package/node_modules/@murphai/importers/dist/preset-registry.js.map +1 -1
  1572. package/node_modules/@murphai/importers/dist/shared.d.ts +1 -1
  1573. package/node_modules/@murphai/importers/dist/shared.d.ts.map +1 -1
  1574. package/node_modules/@murphai/importers/dist/shared.js +1 -1
  1575. package/node_modules/@murphai/importers/dist/shared.js.map +1 -1
  1576. package/node_modules/@murphai/importers/dist/workout-csv-planner.d.ts +49 -0
  1577. package/node_modules/@murphai/importers/dist/workout-csv-planner.d.ts.map +1 -0
  1578. package/node_modules/@murphai/importers/dist/workout-csv-planner.js +860 -0
  1579. package/node_modules/@murphai/importers/dist/workout-csv-planner.js.map +1 -0
  1580. package/node_modules/@murphai/inbox-services/dist/inbox-app/bootstrap-doctor-strategies.d.ts +2 -5
  1581. package/node_modules/@murphai/inbox-services/dist/inbox-app/bootstrap-doctor-strategies.d.ts.map +1 -1
  1582. package/node_modules/@murphai/inbox-services/dist/inbox-app/bootstrap-doctor-strategies.js +3 -50
  1583. package/node_modules/@murphai/inbox-services/dist/inbox-app/bootstrap-doctor-strategies.js.map +1 -1
  1584. package/node_modules/@murphai/inbox-services/dist/inbox-app/bootstrap-doctor.d.ts.map +1 -1
  1585. package/node_modules/@murphai/inbox-services/dist/inbox-app/bootstrap-doctor.js +9 -11
  1586. package/node_modules/@murphai/inbox-services/dist/inbox-app/bootstrap-doctor.js.map +1 -1
  1587. package/node_modules/@murphai/inbox-services/dist/inbox-app/environment.d.ts.map +1 -1
  1588. package/node_modules/@murphai/inbox-services/dist/inbox-app/environment.js +0 -160
  1589. package/node_modules/@murphai/inbox-services/dist/inbox-app/environment.js.map +1 -1
  1590. package/node_modules/@murphai/inbox-services/dist/inbox-app/runtime.d.ts.map +1 -1
  1591. package/node_modules/@murphai/inbox-services/dist/inbox-app/runtime.js +2 -4
  1592. package/node_modules/@murphai/inbox-services/dist/inbox-app/runtime.js.map +1 -1
  1593. package/node_modules/@murphai/inbox-services/dist/inbox-app/sources.d.ts +1 -1
  1594. package/node_modules/@murphai/inbox-services/dist/inbox-app/sources.d.ts.map +1 -1
  1595. package/node_modules/@murphai/inbox-services/dist/inbox-app/sources.js +2 -32
  1596. package/node_modules/@murphai/inbox-services/dist/inbox-app/sources.js.map +1 -1
  1597. package/node_modules/@murphai/inbox-services/dist/inbox-app/types.d.ts +2 -79
  1598. package/node_modules/@murphai/inbox-services/dist/inbox-app/types.d.ts.map +1 -1
  1599. package/node_modules/@murphai/inbox-services/dist/inbox-app/types.js +0 -1
  1600. package/node_modules/@murphai/inbox-services/dist/inbox-app/types.js.map +1 -1
  1601. package/node_modules/@murphai/inbox-services/dist/inbox-services/connectors.d.ts +1 -2
  1602. package/node_modules/@murphai/inbox-services/dist/inbox-services/connectors.d.ts.map +1 -1
  1603. package/node_modules/@murphai/inbox-services/dist/inbox-services/connectors.js +15 -37
  1604. package/node_modules/@murphai/inbox-services/dist/inbox-services/connectors.js.map +1 -1
  1605. package/node_modules/@murphai/inbox-services/dist/inbox-services/promotions.d.ts +21 -21
  1606. package/node_modules/@murphai/inbox-services/dist/inbox-services/promotions.d.ts.map +1 -1
  1607. package/node_modules/@murphai/inbox-services/dist/inbox-services/promotions.js +1 -1
  1608. package/node_modules/@murphai/inbox-services/dist/inbox-services/promotions.js.map +1 -1
  1609. package/node_modules/@murphai/inbox-services/dist/inbox-services/shared.d.ts +1 -1
  1610. package/node_modules/@murphai/inbox-services/dist/inbox-services/shared.d.ts.map +1 -1
  1611. package/node_modules/@murphai/inbox-services/dist/inbox-services/shared.js +0 -1
  1612. package/node_modules/@murphai/inbox-services/dist/inbox-services/shared.js.map +1 -1
  1613. package/node_modules/@murphai/inbox-services/dist/index.d.ts +1 -1
  1614. package/node_modules/@murphai/inbox-services/dist/index.d.ts.map +1 -1
  1615. package/node_modules/@murphai/inboxd/README.md +4 -4
  1616. package/node_modules/@murphai/inboxd/dist/connectors/email/normalize-parsed.d.ts.map +1 -1
  1617. package/node_modules/@murphai/inboxd/dist/connectors/email/normalize-parsed.js +56 -5
  1618. package/node_modules/@murphai/inboxd/dist/connectors/email/normalize-parsed.js.map +1 -1
  1619. package/node_modules/@murphai/inboxd/dist/connectors/linq/normalize.js +8 -0
  1620. package/node_modules/@murphai/inboxd/dist/connectors/linq/normalize.js.map +1 -1
  1621. package/node_modules/@murphai/inboxd/dist/connectors/telegram/normalize.d.ts +1 -0
  1622. package/node_modules/@murphai/inboxd/dist/connectors/telegram/normalize.d.ts.map +1 -1
  1623. package/node_modules/@murphai/inboxd/dist/connectors/telegram/normalize.js +1 -0
  1624. package/node_modules/@murphai/inboxd/dist/connectors/telegram/normalize.js.map +1 -1
  1625. package/node_modules/@murphai/inboxd/dist/index.d.ts +0 -5
  1626. package/node_modules/@murphai/inboxd/dist/index.d.ts.map +1 -1
  1627. package/node_modules/@murphai/inboxd/dist/index.js +0 -2
  1628. package/node_modules/@murphai/inboxd/dist/index.js.map +1 -1
  1629. package/node_modules/@murphai/inboxd/dist/indexing/attachment-storage-normalizer.d.ts.map +1 -1
  1630. package/node_modules/@murphai/inboxd/dist/indexing/attachment-storage-normalizer.js +141 -4
  1631. package/node_modules/@murphai/inboxd/dist/indexing/attachment-storage-normalizer.js.map +1 -1
  1632. package/node_modules/@murphai/inboxd/dist/indexing/retention.d.ts +6 -0
  1633. package/node_modules/@murphai/inboxd/dist/indexing/retention.d.ts.map +1 -1
  1634. package/node_modules/@murphai/inboxd/dist/indexing/retention.js +64 -18
  1635. package/node_modules/@murphai/inboxd/dist/indexing/retention.js.map +1 -1
  1636. package/node_modules/@murphai/inboxd/dist/retention.d.ts +1 -1
  1637. package/node_modules/@murphai/inboxd/dist/retention.d.ts.map +1 -1
  1638. package/node_modules/@murphai/inboxd/dist/retention.js +1 -1
  1639. package/node_modules/@murphai/inboxd/dist/retention.js.map +1 -1
  1640. package/node_modules/@murphai/messaging-ingress/README.md +5 -1
  1641. package/node_modules/@murphai/messaging-ingress/dist/linq-webhook.d.ts +27 -1
  1642. package/node_modules/@murphai/messaging-ingress/dist/linq-webhook.d.ts.map +1 -1
  1643. package/node_modules/@murphai/messaging-ingress/dist/linq-webhook.js +164 -17
  1644. package/node_modules/@murphai/messaging-ingress/dist/linq-webhook.js.map +1 -1
  1645. package/node_modules/@murphai/messaging-ingress/dist/telegram-webhook-payload.d.ts +1 -0
  1646. package/node_modules/@murphai/messaging-ingress/dist/telegram-webhook-payload.d.ts.map +1 -1
  1647. package/node_modules/@murphai/messaging-ingress/dist/telegram-webhook-payload.js +2 -0
  1648. package/node_modules/@murphai/messaging-ingress/dist/telegram-webhook-payload.js.map +1 -1
  1649. package/node_modules/@murphai/operator-config/dist/assistant/codex-resume-state.d.ts +3 -3
  1650. package/node_modules/@murphai/operator-config/dist/assistant/codex-resume-state.d.ts.map +1 -1
  1651. package/node_modules/@murphai/operator-config/dist/assistant/codex-resume-state.js +1 -1
  1652. package/node_modules/@murphai/operator-config/dist/assistant/codex-resume-state.js.map +1 -1
  1653. package/node_modules/@murphai/operator-config/dist/assistant/current-delivery-route.d.ts +1 -1
  1654. package/node_modules/@murphai/operator-config/dist/assistant/current-delivery-route.d.ts.map +1 -1
  1655. package/node_modules/@murphai/operator-config/dist/assistant/current-delivery-route.js +7 -19
  1656. package/node_modules/@murphai/operator-config/dist/assistant/current-delivery-route.js.map +1 -1
  1657. package/node_modules/@murphai/operator-config/dist/assistant/hosted-config.d.ts +31 -33
  1658. package/node_modules/@murphai/operator-config/dist/assistant/hosted-config.d.ts.map +1 -1
  1659. package/node_modules/@murphai/operator-config/dist/assistant/hosted-config.js +5 -8
  1660. package/node_modules/@murphai/operator-config/dist/assistant/hosted-config.js.map +1 -1
  1661. package/node_modules/@murphai/operator-config/dist/assistant/provider-config.d.ts +1 -15
  1662. package/node_modules/@murphai/operator-config/dist/assistant/provider-config.d.ts.map +1 -1
  1663. package/node_modules/@murphai/operator-config/dist/assistant/provider-config.js +52 -84
  1664. package/node_modules/@murphai/operator-config/dist/assistant/provider-config.js.map +1 -1
  1665. package/node_modules/@murphai/operator-config/dist/assistant/target-runtime.d.ts +31 -48
  1666. package/node_modules/@murphai/operator-config/dist/assistant/target-runtime.d.ts.map +1 -1
  1667. package/node_modules/@murphai/operator-config/dist/assistant/target-runtime.js +33 -56
  1668. package/node_modules/@murphai/operator-config/dist/assistant/target-runtime.js.map +1 -1
  1669. package/node_modules/@murphai/operator-config/dist/assistant-backend.d.ts +11 -11
  1670. package/node_modules/@murphai/operator-config/dist/assistant-backend.d.ts.map +1 -1
  1671. package/node_modules/@murphai/operator-config/dist/assistant-backend.js +33 -45
  1672. package/node_modules/@murphai/operator-config/dist/assistant-backend.js.map +1 -1
  1673. package/node_modules/@murphai/operator-config/dist/assistant-cli-contracts.d.ts +1714 -1566
  1674. package/node_modules/@murphai/operator-config/dist/assistant-cli-contracts.d.ts.map +1 -1
  1675. package/node_modules/@murphai/operator-config/dist/assistant-cli-contracts.js +198 -23
  1676. package/node_modules/@murphai/operator-config/dist/assistant-cli-contracts.js.map +1 -1
  1677. package/node_modules/@murphai/operator-config/dist/assistant-response-cards.d.ts +468 -0
  1678. package/node_modules/@murphai/operator-config/dist/assistant-response-cards.d.ts.map +1 -0
  1679. package/node_modules/@murphai/operator-config/dist/assistant-response-cards.js +1051 -0
  1680. package/node_modules/@murphai/operator-config/dist/assistant-response-cards.js.map +1 -0
  1681. package/node_modules/@murphai/operator-config/dist/command-helpers.d.ts +4 -2
  1682. package/node_modules/@murphai/operator-config/dist/command-helpers.d.ts.map +1 -1
  1683. package/node_modules/@murphai/operator-config/dist/command-helpers.js +36 -1
  1684. package/node_modules/@murphai/operator-config/dist/command-helpers.js.map +1 -1
  1685. package/node_modules/@murphai/operator-config/dist/device-cli-contracts.d.ts +181 -181
  1686. package/node_modules/@murphai/operator-config/dist/device-cli-contracts.d.ts.map +1 -1
  1687. package/node_modules/@murphai/operator-config/dist/device-cli-contracts.js +1 -1
  1688. package/node_modules/@murphai/operator-config/dist/device-cli-contracts.js.map +1 -1
  1689. package/node_modules/@murphai/operator-config/dist/device-sync-client.d.ts.map +1 -1
  1690. package/node_modules/@murphai/operator-config/dist/device-sync-client.js +2 -6
  1691. package/node_modules/@murphai/operator-config/dist/device-sync-client.js.map +1 -1
  1692. package/node_modules/@murphai/operator-config/dist/elevenlabs-runtime.d.ts +3 -0
  1693. package/node_modules/@murphai/operator-config/dist/elevenlabs-runtime.d.ts.map +1 -1
  1694. package/node_modules/@murphai/operator-config/dist/elevenlabs-runtime.js +301 -63
  1695. package/node_modules/@murphai/operator-config/dist/elevenlabs-runtime.js.map +1 -1
  1696. package/node_modules/@murphai/operator-config/dist/hosted-assistant-config-constants.d.ts +3 -2
  1697. package/node_modules/@murphai/operator-config/dist/hosted-assistant-config-constants.d.ts.map +1 -1
  1698. package/node_modules/@murphai/operator-config/dist/hosted-assistant-config-constants.js +3 -0
  1699. package/node_modules/@murphai/operator-config/dist/hosted-assistant-config-constants.js.map +1 -1
  1700. package/node_modules/@murphai/operator-config/dist/hosted-assistant-config.d.ts.map +1 -1
  1701. package/node_modules/@murphai/operator-config/dist/hosted-assistant-config.js +2 -6
  1702. package/node_modules/@murphai/operator-config/dist/hosted-assistant-config.js.map +1 -1
  1703. package/node_modules/@murphai/operator-config/dist/http-json-retry.d.ts +7 -2
  1704. package/node_modules/@murphai/operator-config/dist/http-json-retry.d.ts.map +1 -1
  1705. package/node_modules/@murphai/operator-config/dist/http-json-retry.js +33 -14
  1706. package/node_modules/@murphai/operator-config/dist/http-json-retry.js.map +1 -1
  1707. package/node_modules/@murphai/operator-config/dist/inbox-cli-contracts.d.ts +427 -462
  1708. package/node_modules/@murphai/operator-config/dist/inbox-cli-contracts.d.ts.map +1 -1
  1709. package/node_modules/@murphai/operator-config/dist/inbox-cli-contracts.js +2 -14
  1710. package/node_modules/@murphai/operator-config/dist/inbox-cli-contracts.js.map +1 -1
  1711. package/node_modules/@murphai/operator-config/dist/linq-runtime.d.ts +35 -1
  1712. package/node_modules/@murphai/operator-config/dist/linq-runtime.d.ts.map +1 -1
  1713. package/node_modules/@murphai/operator-config/dist/linq-runtime.js +1115 -180
  1714. package/node_modules/@murphai/operator-config/dist/linq-runtime.js.map +1 -1
  1715. package/node_modules/@murphai/operator-config/dist/message-formatting.d.ts +1 -0
  1716. package/node_modules/@murphai/operator-config/dist/message-formatting.d.ts.map +1 -1
  1717. package/node_modules/@murphai/operator-config/dist/message-formatting.js +3 -1
  1718. package/node_modules/@murphai/operator-config/dist/message-formatting.js.map +1 -1
  1719. package/node_modules/@murphai/operator-config/dist/message-table-fallback.d.ts +7 -0
  1720. package/node_modules/@murphai/operator-config/dist/message-table-fallback.d.ts.map +1 -0
  1721. package/node_modules/@murphai/operator-config/dist/message-table-fallback.js +109 -0
  1722. package/node_modules/@murphai/operator-config/dist/message-table-fallback.js.map +1 -0
  1723. package/node_modules/@murphai/operator-config/dist/operator-config/self-delivery-targets.d.ts +12 -12
  1724. package/node_modules/@murphai/operator-config/dist/operator-config/self-delivery-targets.d.ts.map +1 -1
  1725. package/node_modules/@murphai/operator-config/dist/operator-config/self-delivery-targets.js +1 -1
  1726. package/node_modules/@murphai/operator-config/dist/operator-config/self-delivery-targets.js.map +1 -1
  1727. package/node_modules/@murphai/operator-config/dist/operator-config.d.ts +50 -53
  1728. package/node_modules/@murphai/operator-config/dist/operator-config.d.ts.map +1 -1
  1729. package/node_modules/@murphai/operator-config/dist/operator-config.js +4 -5
  1730. package/node_modules/@murphai/operator-config/dist/operator-config.js.map +1 -1
  1731. package/node_modules/@murphai/operator-config/dist/setup-cli-contracts.d.ts +225 -226
  1732. package/node_modules/@murphai/operator-config/dist/setup-cli-contracts.d.ts.map +1 -1
  1733. package/node_modules/@murphai/operator-config/dist/setup-cli-contracts.js +2 -2
  1734. package/node_modules/@murphai/operator-config/dist/setup-cli-contracts.js.map +1 -1
  1735. package/node_modules/@murphai/operator-config/dist/setup-runtime-env.d.ts.map +1 -1
  1736. package/node_modules/@murphai/operator-config/dist/setup-runtime-env.js +0 -19
  1737. package/node_modules/@murphai/operator-config/dist/setup-runtime-env.js.map +1 -1
  1738. package/node_modules/@murphai/operator-config/dist/vault-cli-contracts.d.ts +402 -294
  1739. package/node_modules/@murphai/operator-config/dist/vault-cli-contracts.d.ts.map +1 -1
  1740. package/node_modules/@murphai/operator-config/dist/vault-cli-contracts.js +94 -8
  1741. package/node_modules/@murphai/operator-config/dist/vault-cli-contracts.js.map +1 -1
  1742. package/node_modules/@murphai/operator-config/dist/vault-cli-error-projection.d.ts +24 -0
  1743. package/node_modules/@murphai/operator-config/dist/vault-cli-error-projection.d.ts.map +1 -0
  1744. package/node_modules/@murphai/operator-config/dist/vault-cli-error-projection.js +219 -0
  1745. package/node_modules/@murphai/operator-config/dist/vault-cli-error-projection.js.map +1 -0
  1746. package/node_modules/@murphai/operator-config/dist/vault-cli-errors.d.ts.map +1 -1
  1747. package/node_modules/@murphai/operator-config/dist/vault-cli-errors.js.map +1 -1
  1748. package/node_modules/@murphai/operator-config/dist/workout-action-binding.d.ts +14 -0
  1749. package/node_modules/@murphai/operator-config/dist/workout-action-binding.d.ts.map +1 -0
  1750. package/node_modules/@murphai/operator-config/dist/workout-action-binding.js +127 -0
  1751. package/node_modules/@murphai/operator-config/dist/workout-action-binding.js.map +1 -0
  1752. package/node_modules/@murphai/operator-config/package.json +15 -5
  1753. package/node_modules/@murphai/parsers/dist/adapters/ffmpeg.d.ts +2 -0
  1754. package/node_modules/@murphai/parsers/dist/adapters/ffmpeg.d.ts.map +1 -1
  1755. package/node_modules/@murphai/parsers/dist/adapters/ffmpeg.js +18 -0
  1756. package/node_modules/@murphai/parsers/dist/adapters/ffmpeg.js.map +1 -1
  1757. package/node_modules/@murphai/query/README.md +29 -5
  1758. package/node_modules/@murphai/query/dist/automation.d.ts +5 -2
  1759. package/node_modules/@murphai/query/dist/automation.d.ts.map +1 -1
  1760. package/node_modules/@murphai/query/dist/automation.js +33 -8
  1761. package/node_modules/@murphai/query/dist/automation.js.map +1 -1
  1762. package/node_modules/@murphai/query/dist/browser-biomarkers.d.ts +2 -2
  1763. package/node_modules/@murphai/query/dist/browser-biomarkers.d.ts.map +1 -1
  1764. package/node_modules/@murphai/query/dist/browser-biomarkers.js +1 -1
  1765. package/node_modules/@murphai/query/dist/browser-biomarkers.js.map +1 -1
  1766. package/node_modules/@murphai/query/dist/browser-experiments.d.ts +2 -2
  1767. package/node_modules/@murphai/query/dist/browser-experiments.d.ts.map +1 -1
  1768. package/node_modules/@murphai/query/dist/browser-experiments.js +1 -1
  1769. package/node_modules/@murphai/query/dist/browser-experiments.js.map +1 -1
  1770. package/node_modules/@murphai/query/dist/browser-murph-age.d.ts +1 -1
  1771. package/node_modules/@murphai/query/dist/browser-murph-age.d.ts.map +1 -1
  1772. package/node_modules/@murphai/query/dist/browser-overview.d.ts +2 -1
  1773. package/node_modules/@murphai/query/dist/browser-overview.d.ts.map +1 -1
  1774. package/node_modules/@murphai/query/dist/browser-replica/biomarker-panel.d.ts +2 -2
  1775. package/node_modules/@murphai/query/dist/browser-replica/biomarker-panel.d.ts.map +1 -1
  1776. package/node_modules/@murphai/query/dist/browser-replica/build.d.ts +1 -1
  1777. package/node_modules/@murphai/query/dist/browser-replica/build.d.ts.map +1 -1
  1778. package/node_modules/@murphai/query/dist/browser-replica/build.js +68 -41
  1779. package/node_modules/@murphai/query/dist/browser-replica/build.js.map +1 -1
  1780. package/node_modules/@murphai/query/dist/browser-replica/client-overview.d.ts +3 -3
  1781. package/node_modules/@murphai/query/dist/browser-replica/client-overview.d.ts.map +1 -1
  1782. package/node_modules/@murphai/query/dist/browser-replica/client-overview.js +3 -0
  1783. package/node_modules/@murphai/query/dist/browser-replica/client-overview.js.map +1 -1
  1784. package/node_modules/@murphai/query/dist/browser-replica/device-metrics.d.ts +2 -2
  1785. package/node_modules/@murphai/query/dist/browser-replica/device-metrics.d.ts.map +1 -1
  1786. package/node_modules/@murphai/query/dist/browser-replica/device-metrics.js.map +1 -1
  1787. package/node_modules/@murphai/query/dist/browser-replica/experiment-run-cards.d.ts +8 -0
  1788. package/node_modules/@murphai/query/dist/browser-replica/experiment-run-cards.d.ts.map +1 -0
  1789. package/node_modules/@murphai/query/dist/browser-replica/experiment-run-cards.js +548 -0
  1790. package/node_modules/@murphai/query/dist/browser-replica/experiment-run-cards.js.map +1 -0
  1791. package/node_modules/@murphai/query/dist/browser-replica/experiments.d.ts +22 -2
  1792. package/node_modules/@murphai/query/dist/browser-replica/experiments.d.ts.map +1 -1
  1793. package/node_modules/@murphai/query/dist/browser-replica/experiments.js +209 -63
  1794. package/node_modules/@murphai/query/dist/browser-replica/experiments.js.map +1 -1
  1795. package/node_modules/@murphai/query/dist/browser-replica/json.d.ts +6 -0
  1796. package/node_modules/@murphai/query/dist/browser-replica/json.d.ts.map +1 -0
  1797. package/node_modules/@murphai/query/dist/browser-replica/json.js +103 -0
  1798. package/node_modules/@murphai/query/dist/browser-replica/json.js.map +1 -0
  1799. package/node_modules/@murphai/query/dist/browser-replica/lab-result-status.d.ts +11 -0
  1800. package/node_modules/@murphai/query/dist/browser-replica/lab-result-status.d.ts.map +1 -0
  1801. package/node_modules/@murphai/query/dist/browser-replica/lab-result-status.js +233 -0
  1802. package/node_modules/@murphai/query/dist/browser-replica/lab-result-status.js.map +1 -0
  1803. package/node_modules/@murphai/query/dist/browser-replica/lab-results.d.ts +4 -3
  1804. package/node_modules/@murphai/query/dist/browser-replica/lab-results.d.ts.map +1 -1
  1805. package/node_modules/@murphai/query/dist/browser-replica/lab-results.js +24 -5
  1806. package/node_modules/@murphai/query/dist/browser-replica/lab-results.js.map +1 -1
  1807. package/node_modules/@murphai/query/dist/browser-replica/metric-buckets.d.ts +14 -0
  1808. package/node_modules/@murphai/query/dist/browser-replica/metric-buckets.d.ts.map +1 -0
  1809. package/node_modules/@murphai/query/dist/browser-replica/metric-buckets.js +25 -0
  1810. package/node_modules/@murphai/query/dist/browser-replica/metric-buckets.js.map +1 -0
  1811. package/node_modules/@murphai/query/dist/browser-replica/murph-age.d.ts +2 -2
  1812. package/node_modules/@murphai/query/dist/browser-replica/murph-age.d.ts.map +1 -1
  1813. package/node_modules/@murphai/query/dist/browser-replica/murph-age.js.map +1 -1
  1814. package/node_modules/@murphai/query/dist/browser-replica/parse.d.ts +8 -0
  1815. package/node_modules/@murphai/query/dist/browser-replica/parse.d.ts.map +1 -1
  1816. package/node_modules/@murphai/query/dist/browser-replica/parse.js +327 -7
  1817. package/node_modules/@murphai/query/dist/browser-replica/parse.js.map +1 -1
  1818. package/node_modules/@murphai/query/dist/browser-replica/query.d.ts +24 -1
  1819. package/node_modules/@murphai/query/dist/browser-replica/query.d.ts.map +1 -1
  1820. package/node_modules/@murphai/query/dist/browser-replica/query.js +246 -41
  1821. package/node_modules/@murphai/query/dist/browser-replica/query.js.map +1 -1
  1822. package/node_modules/@murphai/query/dist/browser-replica/search-row.d.ts +3 -0
  1823. package/node_modules/@murphai/query/dist/browser-replica/search-row.d.ts.map +1 -0
  1824. package/node_modules/@murphai/query/dist/browser-replica/search-row.js +16 -0
  1825. package/node_modules/@murphai/query/dist/browser-replica/search-row.js.map +1 -0
  1826. package/node_modules/@murphai/query/dist/browser-replica/shards.d.ts +76 -0
  1827. package/node_modules/@murphai/query/dist/browser-replica/shards.d.ts.map +1 -0
  1828. package/node_modules/@murphai/query/dist/browser-replica/shards.js +232 -0
  1829. package/node_modules/@murphai/query/dist/browser-replica/shards.js.map +1 -0
  1830. package/node_modules/@murphai/query/dist/browser-replica/shared.d.ts +144 -9
  1831. package/node_modules/@murphai/query/dist/browser-replica/shared.d.ts.map +1 -1
  1832. package/node_modules/@murphai/query/dist/browser-replica/shared.js +1 -0
  1833. package/node_modules/@murphai/query/dist/browser-replica/shared.js.map +1 -1
  1834. package/node_modules/@murphai/query/dist/browser-replica/source.d.ts +13 -0
  1835. package/node_modules/@murphai/query/dist/browser-replica/source.d.ts.map +1 -0
  1836. package/node_modules/@murphai/query/dist/browser-replica/source.js +45 -0
  1837. package/node_modules/@murphai/query/dist/browser-replica/source.js.map +1 -0
  1838. package/node_modules/@murphai/query/dist/browser-replica/tracked-experiments.d.ts +3 -3
  1839. package/node_modules/@murphai/query/dist/browser-replica/tracked-experiments.d.ts.map +1 -1
  1840. package/node_modules/@murphai/query/dist/browser-replica/tracked-experiments.js.map +1 -1
  1841. package/node_modules/@murphai/query/dist/browser-replica/training.d.ts +7 -0
  1842. package/node_modules/@murphai/query/dist/browser-replica/training.d.ts.map +1 -0
  1843. package/node_modules/@murphai/query/dist/browser-replica/training.js +241 -0
  1844. package/node_modules/@murphai/query/dist/browser-replica/training.js.map +1 -0
  1845. package/node_modules/@murphai/query/dist/browser-replica/views.d.ts +5 -5
  1846. package/node_modules/@murphai/query/dist/browser-replica/views.d.ts.map +1 -1
  1847. package/node_modules/@murphai/query/dist/browser-replica/views.js +3 -0
  1848. package/node_modules/@murphai/query/dist/browser-replica/views.js.map +1 -1
  1849. package/node_modules/@murphai/query/dist/browser-replica-client.d.ts +11 -4
  1850. package/node_modules/@murphai/query/dist/browser-replica-client.d.ts.map +1 -1
  1851. package/node_modules/@murphai/query/dist/browser-replica-client.js +7 -3
  1852. package/node_modules/@murphai/query/dist/browser-replica-client.js.map +1 -1
  1853. package/node_modules/@murphai/query/dist/browser-replica-server.d.ts +7 -0
  1854. package/node_modules/@murphai/query/dist/browser-replica-server.d.ts.map +1 -0
  1855. package/node_modules/@murphai/query/dist/browser-replica-server.js +7 -0
  1856. package/node_modules/@murphai/query/dist/browser-replica-server.js.map +1 -0
  1857. package/node_modules/@murphai/query/dist/browser-replica.d.ts +13 -5
  1858. package/node_modules/@murphai/query/dist/browser-replica.d.ts.map +1 -1
  1859. package/node_modules/@murphai/query/dist/browser-replica.js +9 -4
  1860. package/node_modules/@murphai/query/dist/browser-replica.js.map +1 -1
  1861. package/node_modules/@murphai/query/dist/browser.d.ts +2 -2
  1862. package/node_modules/@murphai/query/dist/browser.d.ts.map +1 -1
  1863. package/node_modules/@murphai/query/dist/browser.js +1 -1
  1864. package/node_modules/@murphai/query/dist/browser.js.map +1 -1
  1865. package/node_modules/@murphai/query/dist/canonical-observation-metrics.d.ts +16 -0
  1866. package/node_modules/@murphai/query/dist/canonical-observation-metrics.d.ts.map +1 -0
  1867. package/node_modules/@murphai/query/dist/canonical-observation-metrics.js +70 -0
  1868. package/node_modules/@murphai/query/dist/canonical-observation-metrics.js.map +1 -0
  1869. package/node_modules/@murphai/query/dist/experiment-adherence.d.ts +20 -0
  1870. package/node_modules/@murphai/query/dist/experiment-adherence.d.ts.map +1 -1
  1871. package/node_modules/@murphai/query/dist/experiment-adherence.js +175 -29
  1872. package/node_modules/@murphai/query/dist/experiment-adherence.js.map +1 -1
  1873. package/node_modules/@murphai/query/dist/experiment-progress-card.d.ts +1 -0
  1874. package/node_modules/@murphai/query/dist/experiment-progress-card.d.ts.map +1 -1
  1875. package/node_modules/@murphai/query/dist/experiment-progress-card.js +1 -0
  1876. package/node_modules/@murphai/query/dist/experiment-progress-card.js.map +1 -1
  1877. package/node_modules/@murphai/query/dist/experiments.d.ts.map +1 -1
  1878. package/node_modules/@murphai/query/dist/experiments.js +46 -22
  1879. package/node_modules/@murphai/query/dist/experiments.js.map +1 -1
  1880. package/node_modules/@murphai/query/dist/group-weekly.d.ts.map +1 -1
  1881. package/node_modules/@murphai/query/dist/group-weekly.js +52 -1
  1882. package/node_modules/@murphai/query/dist/group-weekly.js.map +1 -1
  1883. package/node_modules/@murphai/query/dist/health/blood-tests.d.ts.map +1 -1
  1884. package/node_modules/@murphai/query/dist/health/blood-tests.js +3 -2
  1885. package/node_modules/@murphai/query/dist/health/blood-tests.js.map +1 -1
  1886. package/node_modules/@murphai/query/dist/health/canonical-collector.d.ts +11 -1
  1887. package/node_modules/@murphai/query/dist/health/canonical-collector.d.ts.map +1 -1
  1888. package/node_modules/@murphai/query/dist/health/canonical-collector.js +39 -16
  1889. package/node_modules/@murphai/query/dist/health/canonical-collector.js.map +1 -1
  1890. package/node_modules/@murphai/query/dist/health/entity-slices.d.ts +9 -3
  1891. package/node_modules/@murphai/query/dist/health/entity-slices.d.ts.map +1 -1
  1892. package/node_modules/@murphai/query/dist/health/entity-slices.js +6 -6
  1893. package/node_modules/@murphai/query/dist/health/entity-slices.js.map +1 -1
  1894. package/node_modules/@murphai/query/dist/health/immunizations.d.ts.map +1 -1
  1895. package/node_modules/@murphai/query/dist/health/immunizations.js +14 -11
  1896. package/node_modules/@murphai/query/dist/health/immunizations.js.map +1 -1
  1897. package/node_modules/@murphai/query/dist/health/loaders.d.ts +21 -7
  1898. package/node_modules/@murphai/query/dist/health/loaders.d.ts.map +1 -1
  1899. package/node_modules/@murphai/query/dist/health/loaders.js +53 -15
  1900. package/node_modules/@murphai/query/dist/health/loaders.js.map +1 -1
  1901. package/node_modules/@murphai/query/dist/health/registries.d.ts +1 -0
  1902. package/node_modules/@murphai/query/dist/health/registries.d.ts.map +1 -1
  1903. package/node_modules/@murphai/query/dist/health/registries.js.map +1 -1
  1904. package/node_modules/@murphai/query/dist/health/shared.js +1 -1
  1905. package/node_modules/@murphai/query/dist/health/shared.js.map +1 -1
  1906. package/node_modules/@murphai/query/dist/index.d.ts +25 -7
  1907. package/node_modules/@murphai/query/dist/index.d.ts.map +1 -1
  1908. package/node_modules/@murphai/query/dist/index.js +18 -6
  1909. package/node_modules/@murphai/query/dist/index.js.map +1 -1
  1910. package/node_modules/@murphai/query/dist/knowledge-contracts.d.ts +78 -75
  1911. package/node_modules/@murphai/query/dist/knowledge-contracts.d.ts.map +1 -1
  1912. package/node_modules/@murphai/query/dist/knowledge-contracts.js +2 -1
  1913. package/node_modules/@murphai/query/dist/knowledge-contracts.js.map +1 -1
  1914. package/node_modules/@murphai/query/dist/knowledge-graph.d.ts +1 -0
  1915. package/node_modules/@murphai/query/dist/knowledge-graph.d.ts.map +1 -1
  1916. package/node_modules/@murphai/query/dist/knowledge-graph.js +17 -1
  1917. package/node_modules/@murphai/query/dist/knowledge-graph.js.map +1 -1
  1918. package/node_modules/@murphai/query/dist/meal-nutrition.d.ts +27 -1
  1919. package/node_modules/@murphai/query/dist/meal-nutrition.d.ts.map +1 -1
  1920. package/node_modules/@murphai/query/dist/meal-nutrition.js +120 -7
  1921. package/node_modules/@murphai/query/dist/meal-nutrition.js.map +1 -1
  1922. package/node_modules/@murphai/query/dist/metrics/index.d.ts.map +1 -1
  1923. package/node_modules/@murphai/query/dist/metrics/index.js +14 -1
  1924. package/node_modules/@murphai/query/dist/metrics/index.js.map +1 -1
  1925. package/node_modules/@murphai/query/dist/metrics/projection.d.ts.map +1 -1
  1926. package/node_modules/@murphai/query/dist/metrics/projection.js +123 -3
  1927. package/node_modules/@murphai/query/dist/metrics/projection.js.map +1 -1
  1928. package/node_modules/@murphai/query/dist/murph-age.d.ts +5 -1
  1929. package/node_modules/@murphai/query/dist/murph-age.d.ts.map +1 -1
  1930. package/node_modules/@murphai/query/dist/murph-age.js +22 -8
  1931. package/node_modules/@murphai/query/dist/murph-age.js.map +1 -1
  1932. package/node_modules/@murphai/query/dist/personal-patterns.d.ts +55 -0
  1933. package/node_modules/@murphai/query/dist/personal-patterns.d.ts.map +1 -0
  1934. package/node_modules/@murphai/query/dist/personal-patterns.js +401 -0
  1935. package/node_modules/@murphai/query/dist/personal-patterns.js.map +1 -0
  1936. package/node_modules/@murphai/query/dist/projection/entity-store.js +4 -4
  1937. package/node_modules/@murphai/query/dist/projection/entity-store.js.map +1 -1
  1938. package/node_modules/@murphai/query/dist/projection/schema.d.ts +1 -1
  1939. package/node_modules/@murphai/query/dist/projection/schema.d.ts.map +1 -1
  1940. package/node_modules/@murphai/query/dist/projection/schema.js +5 -1
  1941. package/node_modules/@murphai/query/dist/projection/schema.js.map +1 -1
  1942. package/node_modules/@murphai/query/dist/projection/wearable-summary-compose.js +8 -0
  1943. package/node_modules/@murphai/query/dist/projection/wearable-summary-compose.js.map +1 -1
  1944. package/node_modules/@murphai/query/dist/projection/wearable-summary-projector.d.ts.map +1 -1
  1945. package/node_modules/@murphai/query/dist/projection/wearable-summary-projector.js +6 -2
  1946. package/node_modules/@murphai/query/dist/projection/wearable-summary-projector.js.map +1 -1
  1947. package/node_modules/@murphai/query/dist/projection/wearable-summary-stored-codec.js +1 -1
  1948. package/node_modules/@murphai/query/dist/projection/wearable-summary-stored-codec.js.map +1 -1
  1949. package/node_modules/@murphai/query/dist/query-projection.d.ts +14 -0
  1950. package/node_modules/@murphai/query/dist/query-projection.d.ts.map +1 -1
  1951. package/node_modules/@murphai/query/dist/query-projection.js +31 -0
  1952. package/node_modules/@murphai/query/dist/query-projection.js.map +1 -1
  1953. package/node_modules/@murphai/query/dist/query-visibility.d.ts +5 -0
  1954. package/node_modules/@murphai/query/dist/query-visibility.d.ts.map +1 -1
  1955. package/node_modules/@murphai/query/dist/query-visibility.js +11 -5
  1956. package/node_modules/@murphai/query/dist/query-visibility.js.map +1 -1
  1957. package/node_modules/@murphai/query/dist/read-model.d.ts +8 -0
  1958. package/node_modules/@murphai/query/dist/read-model.d.ts.map +1 -1
  1959. package/node_modules/@murphai/query/dist/read-model.js +11 -1
  1960. package/node_modules/@murphai/query/dist/read-model.js.map +1 -1
  1961. package/node_modules/@murphai/query/dist/scheduled-logs.d.ts.map +1 -1
  1962. package/node_modules/@murphai/query/dist/scheduled-logs.js +55 -79
  1963. package/node_modules/@murphai/query/dist/scheduled-logs.js.map +1 -1
  1964. package/node_modules/@murphai/query/dist/vault-source.d.ts +22 -4
  1965. package/node_modules/@murphai/query/dist/vault-source.d.ts.map +1 -1
  1966. package/node_modules/@murphai/query/dist/vault-source.js +188 -59
  1967. package/node_modules/@murphai/query/dist/vault-source.js.map +1 -1
  1968. package/node_modules/@murphai/query/dist/wearables/candidates.d.ts.map +1 -1
  1969. package/node_modules/@murphai/query/dist/wearables/candidates.js +32 -15
  1970. package/node_modules/@murphai/query/dist/wearables/candidates.js.map +1 -1
  1971. package/node_modules/@murphai/query/dist/wearables/public-output.d.ts.map +1 -1
  1972. package/node_modules/@murphai/query/dist/wearables/public-output.js +43 -2
  1973. package/node_modules/@murphai/query/dist/wearables/public-output.js.map +1 -1
  1974. package/node_modules/@murphai/query/dist/wearables/sleep-pattern.d.ts +5 -1
  1975. package/node_modules/@murphai/query/dist/wearables/sleep-pattern.d.ts.map +1 -1
  1976. package/node_modules/@murphai/query/dist/wearables/sleep-pattern.js +16 -3
  1977. package/node_modules/@murphai/query/dist/wearables/sleep-pattern.js.map +1 -1
  1978. package/node_modules/@murphai/query/dist/wearables/source-health.d.ts.map +1 -1
  1979. package/node_modules/@murphai/query/dist/wearables/source-health.js +31 -4
  1980. package/node_modules/@murphai/query/dist/wearables/source-health.js.map +1 -1
  1981. package/node_modules/@murphai/query/dist/wearables/types.d.ts +54 -4
  1982. package/node_modules/@murphai/query/dist/wearables/types.d.ts.map +1 -1
  1983. package/node_modules/@murphai/query/dist/wearables/types.js +36 -0
  1984. package/node_modules/@murphai/query/dist/wearables/types.js.map +1 -1
  1985. package/node_modules/@murphai/query/dist/wearables/workout-features.d.ts +5 -0
  1986. package/node_modules/@murphai/query/dist/wearables/workout-features.d.ts.map +1 -0
  1987. package/node_modules/@murphai/query/dist/wearables/workout-features.js +179 -0
  1988. package/node_modules/@murphai/query/dist/wearables/workout-features.js.map +1 -0
  1989. package/node_modules/@murphai/query/dist/wearables.d.ts.map +1 -1
  1990. package/node_modules/@murphai/query/dist/wearables.js +74 -6
  1991. package/node_modules/@murphai/query/dist/wearables.js.map +1 -1
  1992. package/node_modules/@murphai/query/package.json +15 -0
  1993. package/node_modules/@murphai/runtime-state/README.md +3 -3
  1994. package/node_modules/@murphai/runtime-state/dist/assistant-local-state-descriptors.d.ts.map +1 -1
  1995. package/node_modules/@murphai/runtime-state/dist/assistant-local-state-descriptors.js +15 -2
  1996. package/node_modules/@murphai/runtime-state/dist/assistant-local-state-descriptors.js.map +1 -1
  1997. package/node_modules/@murphai/runtime-state/dist/assistant-runtime-issues.d.ts +4 -0
  1998. package/node_modules/@murphai/runtime-state/dist/assistant-runtime-issues.d.ts.map +1 -1
  1999. package/node_modules/@murphai/runtime-state/dist/assistant-runtime-issues.js +16 -3
  2000. package/node_modules/@murphai/runtime-state/dist/assistant-runtime-issues.js.map +1 -1
  2001. package/node_modules/@murphai/runtime-state/dist/hosted-bundles.d.ts +2 -0
  2002. package/node_modules/@murphai/runtime-state/dist/hosted-bundles.d.ts.map +1 -1
  2003. package/node_modules/@murphai/runtime-state/dist/hosted-bundles.js +76 -20
  2004. package/node_modules/@murphai/runtime-state/dist/hosted-bundles.js.map +1 -1
  2005. package/node_modules/@murphai/runtime-state/dist/hosted-crypto-keyrings.d.ts +32 -1
  2006. package/node_modules/@murphai/runtime-state/dist/hosted-crypto-keyrings.d.ts.map +1 -1
  2007. package/node_modules/@murphai/runtime-state/dist/hosted-crypto-keyrings.js +327 -0
  2008. package/node_modules/@murphai/runtime-state/dist/hosted-crypto-keyrings.js.map +1 -1
  2009. package/node_modules/@murphai/runtime-state/dist/hosted-domain-crypto.d.ts +3 -1
  2010. package/node_modules/@murphai/runtime-state/dist/hosted-domain-crypto.d.ts.map +1 -1
  2011. package/node_modules/@murphai/runtime-state/dist/hosted-domain-crypto.js +23 -3
  2012. package/node_modules/@murphai/runtime-state/dist/hosted-domain-crypto.js.map +1 -1
  2013. package/node_modules/@murphai/runtime-state/dist/hosted-email.d.ts +5 -0
  2014. package/node_modules/@murphai/runtime-state/dist/hosted-email.d.ts.map +1 -1
  2015. package/node_modules/@murphai/runtime-state/dist/hosted-email.js +10 -0
  2016. package/node_modules/@murphai/runtime-state/dist/hosted-email.js.map +1 -1
  2017. package/node_modules/@murphai/runtime-state/dist/hosted-storage.d.ts +1 -1
  2018. package/node_modules/@murphai/runtime-state/dist/hosted-storage.d.ts.map +1 -1
  2019. package/node_modules/@murphai/runtime-state/dist/hosted-storage.js +1 -0
  2020. package/node_modules/@murphai/runtime-state/dist/hosted-storage.js.map +1 -1
  2021. package/node_modules/@murphai/runtime-state/dist/sqlite.d.ts.map +1 -1
  2022. package/node_modules/@murphai/runtime-state/dist/sqlite.js +22 -6
  2023. package/node_modules/@murphai/runtime-state/dist/sqlite.js.map +1 -1
  2024. package/node_modules/@murphai/setup-cli/README.md +1 -1
  2025. package/node_modules/@murphai/setup-cli/dist/incur-error-bridge.d.ts.map +1 -1
  2026. package/node_modules/@murphai/setup-cli/dist/incur-error-bridge.js +6 -15
  2027. package/node_modules/@murphai/setup-cli/dist/incur-error-bridge.js.map +1 -1
  2028. package/node_modules/@murphai/setup-cli/dist/index.d.ts +0 -1
  2029. package/node_modules/@murphai/setup-cli/dist/index.d.ts.map +1 -1
  2030. package/node_modules/@murphai/setup-cli/dist/index.js +0 -1
  2031. package/node_modules/@murphai/setup-cli/dist/index.js.map +1 -1
  2032. package/node_modules/@murphai/setup-cli/dist/setup-assistant-account.js +1 -1
  2033. package/node_modules/@murphai/setup-cli/dist/setup-assistant-account.js.map +1 -1
  2034. package/node_modules/@murphai/setup-cli/dist/setup-assistant-defaults.d.ts.map +1 -1
  2035. package/node_modules/@murphai/setup-cli/dist/setup-assistant-defaults.js +14 -24
  2036. package/node_modules/@murphai/setup-cli/dist/setup-assistant-defaults.js.map +1 -1
  2037. package/node_modules/@murphai/setup-cli/dist/setup-assistant.js +1 -1
  2038. package/node_modules/@murphai/setup-cli/dist/setup-assistant.js.map +1 -1
  2039. package/node_modules/@murphai/setup-cli/dist/setup-cli.d.ts +1 -2
  2040. package/node_modules/@murphai/setup-cli/dist/setup-cli.d.ts.map +1 -1
  2041. package/node_modules/@murphai/setup-cli/dist/setup-cli.js +2 -4
  2042. package/node_modules/@murphai/setup-cli/dist/setup-cli.js.map +1 -1
  2043. package/node_modules/@murphai/setup-cli/dist/setup-services/channels.d.ts +0 -4
  2044. package/node_modules/@murphai/setup-cli/dist/setup-services/channels.d.ts.map +1 -1
  2045. package/node_modules/@murphai/setup-cli/dist/setup-services/channels.js +126 -420
  2046. package/node_modules/@murphai/setup-cli/dist/setup-services/channels.js.map +1 -1
  2047. package/node_modules/@murphai/setup-cli/dist/setup-services.d.ts +0 -3
  2048. package/node_modules/@murphai/setup-cli/dist/setup-services.d.ts.map +1 -1
  2049. package/node_modules/@murphai/setup-cli/dist/setup-services.js +0 -7
  2050. package/node_modules/@murphai/setup-cli/dist/setup-services.js.map +1 -1
  2051. package/node_modules/@murphai/setup-cli/dist/setup-wizard-options.d.ts.map +1 -1
  2052. package/node_modules/@murphai/setup-cli/dist/setup-wizard-options.js +0 -7
  2053. package/node_modules/@murphai/setup-cli/dist/setup-wizard-options.js.map +1 -1
  2054. package/node_modules/@murphai/vault-usecases/README.md +9 -0
  2055. package/node_modules/@murphai/vault-usecases/dist/clinical-records.js +1 -1
  2056. package/node_modules/@murphai/vault-usecases/dist/clinical-records.js.map +1 -1
  2057. package/node_modules/@murphai/vault-usecases/dist/commands/query-record-command-helpers.d.ts +6 -0
  2058. package/node_modules/@murphai/vault-usecases/dist/commands/query-record-command-helpers.d.ts.map +1 -1
  2059. package/node_modules/@murphai/vault-usecases/dist/commands/query-record-command-helpers.js +49 -1
  2060. package/node_modules/@murphai/vault-usecases/dist/commands/query-record-command-helpers.js.map +1 -1
  2061. package/node_modules/@murphai/vault-usecases/dist/experiment-onboarding-options.d.ts +3 -3
  2062. package/node_modules/@murphai/vault-usecases/dist/experiment-onboarding-options.d.ts.map +1 -1
  2063. package/node_modules/@murphai/vault-usecases/dist/experiment-onboarding-options.js +1 -1
  2064. package/node_modules/@murphai/vault-usecases/dist/experiment-onboarding-options.js.map +1 -1
  2065. package/node_modules/@murphai/vault-usecases/dist/export-packs.d.ts +7 -0
  2066. package/node_modules/@murphai/vault-usecases/dist/export-packs.d.ts.map +1 -0
  2067. package/node_modules/@murphai/vault-usecases/dist/export-packs.js +45 -0
  2068. package/node_modules/@murphai/vault-usecases/dist/export-packs.js.map +1 -0
  2069. package/node_modules/@murphai/vault-usecases/dist/health-cli-descriptors.d.ts +28 -28
  2070. package/node_modules/@murphai/vault-usecases/dist/health-cli-descriptors.d.ts.map +1 -1
  2071. package/node_modules/@murphai/vault-usecases/dist/health-cli-descriptors.js +1 -1
  2072. package/node_modules/@murphai/vault-usecases/dist/health-cli-descriptors.js.map +1 -1
  2073. package/node_modules/@murphai/vault-usecases/dist/json-input.d.ts +1 -1
  2074. package/node_modules/@murphai/vault-usecases/dist/json-input.d.ts.map +1 -1
  2075. package/node_modules/@murphai/vault-usecases/dist/json-input.js +1 -1
  2076. package/node_modules/@murphai/vault-usecases/dist/json-input.js.map +1 -1
  2077. package/node_modules/@murphai/vault-usecases/dist/query-runtime.d.ts +5 -1
  2078. package/node_modules/@murphai/vault-usecases/dist/query-runtime.d.ts.map +1 -1
  2079. package/node_modules/@murphai/vault-usecases/dist/query-runtime.js.map +1 -1
  2080. package/node_modules/@murphai/vault-usecases/dist/testing/junction-wearable-fixture.d.ts +1 -1
  2081. package/node_modules/@murphai/vault-usecases/dist/testing/junction-wearable-fixture.d.ts.map +1 -1
  2082. package/node_modules/@murphai/vault-usecases/dist/usecases/capture.d.ts +21 -21
  2083. package/node_modules/@murphai/vault-usecases/dist/usecases/capture.d.ts.map +1 -1
  2084. package/node_modules/@murphai/vault-usecases/dist/usecases/capture.js +23 -13
  2085. package/node_modules/@murphai/vault-usecases/dist/usecases/capture.js.map +1 -1
  2086. package/node_modules/@murphai/vault-usecases/dist/usecases/clinical-imports.d.ts +193 -193
  2087. package/node_modules/@murphai/vault-usecases/dist/usecases/clinical-imports.d.ts.map +1 -1
  2088. package/node_modules/@murphai/vault-usecases/dist/usecases/clinical-imports.js +2 -4
  2089. package/node_modules/@murphai/vault-usecases/dist/usecases/clinical-imports.js.map +1 -1
  2090. package/node_modules/@murphai/vault-usecases/dist/usecases/document-meal-read.d.ts +12 -12
  2091. package/node_modules/@murphai/vault-usecases/dist/usecases/document-meal-read.d.ts.map +1 -1
  2092. package/node_modules/@murphai/vault-usecases/dist/usecases/document-meal-read.js +25 -19
  2093. package/node_modules/@murphai/vault-usecases/dist/usecases/document-meal-read.js.map +1 -1
  2094. package/node_modules/@murphai/vault-usecases/dist/usecases/encounter.d.ts +130 -130
  2095. package/node_modules/@murphai/vault-usecases/dist/usecases/encounter.d.ts.map +1 -1
  2096. package/node_modules/@murphai/vault-usecases/dist/usecases/encounter.js +2 -4
  2097. package/node_modules/@murphai/vault-usecases/dist/usecases/encounter.js.map +1 -1
  2098. package/node_modules/@murphai/vault-usecases/dist/usecases/event-record-mutations.d.ts +9 -0
  2099. package/node_modules/@murphai/vault-usecases/dist/usecases/event-record-mutations.d.ts.map +1 -1
  2100. package/node_modules/@murphai/vault-usecases/dist/usecases/event-record-mutations.js +78 -5
  2101. package/node_modules/@murphai/vault-usecases/dist/usecases/event-record-mutations.js.map +1 -1
  2102. package/node_modules/@murphai/vault-usecases/dist/usecases/exact-event-record.d.ts +20 -0
  2103. package/node_modules/@murphai/vault-usecases/dist/usecases/exact-event-record.d.ts.map +1 -0
  2104. package/node_modules/@murphai/vault-usecases/dist/usecases/exact-event-record.js +72 -0
  2105. package/node_modules/@murphai/vault-usecases/dist/usecases/exact-event-record.js.map +1 -0
  2106. package/node_modules/@murphai/vault-usecases/dist/usecases/experiment-journal-vault.d.ts +29 -6
  2107. package/node_modules/@murphai/vault-usecases/dist/usecases/experiment-journal-vault.d.ts.map +1 -1
  2108. package/node_modules/@murphai/vault-usecases/dist/usecases/experiment-journal-vault.js +267 -46
  2109. package/node_modules/@murphai/vault-usecases/dist/usecases/experiment-journal-vault.js.map +1 -1
  2110. package/node_modules/@murphai/vault-usecases/dist/usecases/explicit-health-family-services.d.ts.map +1 -1
  2111. package/node_modules/@murphai/vault-usecases/dist/usecases/explicit-health-family-services.js +158 -24
  2112. package/node_modules/@murphai/vault-usecases/dist/usecases/explicit-health-family-services.js.map +1 -1
  2113. package/node_modules/@murphai/vault-usecases/dist/usecases/food-autolog.d.ts +1 -1
  2114. package/node_modules/@murphai/vault-usecases/dist/usecases/food-autolog.d.ts.map +1 -1
  2115. package/node_modules/@murphai/vault-usecases/dist/usecases/food-autolog.js +1 -1
  2116. package/node_modules/@murphai/vault-usecases/dist/usecases/food-autolog.js.map +1 -1
  2117. package/node_modules/@murphai/vault-usecases/dist/usecases/food.d.ts.map +1 -1
  2118. package/node_modules/@murphai/vault-usecases/dist/usecases/food.js +98 -6
  2119. package/node_modules/@murphai/vault-usecases/dist/usecases/food.js.map +1 -1
  2120. package/node_modules/@murphai/vault-usecases/dist/usecases/integrated-services.d.ts.map +1 -1
  2121. package/node_modules/@murphai/vault-usecases/dist/usecases/integrated-services.js +97 -13
  2122. package/node_modules/@murphai/vault-usecases/dist/usecases/integrated-services.js.map +1 -1
  2123. package/node_modules/@murphai/vault-usecases/dist/usecases/intervention-experiment-link.d.ts.map +1 -1
  2124. package/node_modules/@murphai/vault-usecases/dist/usecases/intervention-experiment-link.js +49 -24
  2125. package/node_modules/@murphai/vault-usecases/dist/usecases/intervention-experiment-link.js.map +1 -1
  2126. package/node_modules/@murphai/vault-usecases/dist/usecases/measurement-read.d.ts +95 -13
  2127. package/node_modules/@murphai/vault-usecases/dist/usecases/measurement-read.d.ts.map +1 -1
  2128. package/node_modules/@murphai/vault-usecases/dist/usecases/measurement-read.js +149 -14
  2129. package/node_modules/@murphai/vault-usecases/dist/usecases/measurement-read.js.map +1 -1
  2130. package/node_modules/@murphai/vault-usecases/dist/usecases/measurement.d.ts.map +1 -1
  2131. package/node_modules/@murphai/vault-usecases/dist/usecases/measurement.js +3 -1
  2132. package/node_modules/@murphai/vault-usecases/dist/usecases/measurement.js.map +1 -1
  2133. package/node_modules/@murphai/vault-usecases/dist/usecases/provider-event.d.ts +4 -4
  2134. package/node_modules/@murphai/vault-usecases/dist/usecases/provider-event.d.ts.map +1 -1
  2135. package/node_modules/@murphai/vault-usecases/dist/usecases/provider-event.js +19 -12
  2136. package/node_modules/@murphai/vault-usecases/dist/usecases/provider-event.js.map +1 -1
  2137. package/node_modules/@murphai/vault-usecases/dist/usecases/recipe.d.ts +3 -3
  2138. package/node_modules/@murphai/vault-usecases/dist/usecases/recipe.d.ts.map +1 -1
  2139. package/node_modules/@murphai/vault-usecases/dist/usecases/recipe.js +44 -2
  2140. package/node_modules/@murphai/vault-usecases/dist/usecases/recipe.js.map +1 -1
  2141. package/node_modules/@murphai/vault-usecases/dist/usecases/runtime.d.ts.map +1 -1
  2142. package/node_modules/@murphai/vault-usecases/dist/usecases/runtime.js +2 -0
  2143. package/node_modules/@murphai/vault-usecases/dist/usecases/runtime.js.map +1 -1
  2144. package/node_modules/@murphai/vault-usecases/dist/usecases/shared.d.ts.map +1 -1
  2145. package/node_modules/@murphai/vault-usecases/dist/usecases/shared.js +1 -3
  2146. package/node_modules/@murphai/vault-usecases/dist/usecases/shared.js.map +1 -1
  2147. package/node_modules/@murphai/vault-usecases/dist/usecases/types.d.ts +44 -1
  2148. package/node_modules/@murphai/vault-usecases/dist/usecases/types.d.ts.map +1 -1
  2149. package/node_modules/@murphai/vault-usecases/dist/usecases/vault-usecase-helpers.d.ts +2 -0
  2150. package/node_modules/@murphai/vault-usecases/dist/usecases/vault-usecase-helpers.d.ts.map +1 -1
  2151. package/node_modules/@murphai/vault-usecases/dist/usecases/vault-usecase-helpers.js +24 -1
  2152. package/node_modules/@murphai/vault-usecases/dist/usecases/vault-usecase-helpers.js.map +1 -1
  2153. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-core.d.ts +7 -1
  2154. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-core.d.ts.map +1 -1
  2155. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-core.js.map +1 -1
  2156. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-format.d.ts +4 -0
  2157. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-format.d.ts.map +1 -1
  2158. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-import.d.ts +60 -7
  2159. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-import.d.ts.map +1 -1
  2160. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-import.js +1282 -494
  2161. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-import.js.map +1 -1
  2162. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-model.d.ts +116 -0
  2163. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-model.d.ts.map +1 -0
  2164. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-model.js +231 -0
  2165. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-model.js.map +1 -0
  2166. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-state.d.ts +36 -0
  2167. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-state.d.ts.map +1 -0
  2168. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-state.js +287 -0
  2169. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-state.js.map +1 -0
  2170. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live.d.ts +134 -0
  2171. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live.d.ts.map +1 -0
  2172. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live.js +744 -0
  2173. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live.js.map +1 -0
  2174. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-model.d.ts +1 -1
  2175. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-model.d.ts.map +1 -1
  2176. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-model.js +2 -0
  2177. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-model.js.map +1 -1
  2178. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-read.d.ts +13 -13
  2179. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-read.d.ts.map +1 -1
  2180. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-read.js +22 -19
  2181. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-read.js.map +1 -1
  2182. package/node_modules/@murphai/vault-usecases/dist/usecases/workout.d.ts +39 -2
  2183. package/node_modules/@murphai/vault-usecases/dist/usecases/workout.d.ts.map +1 -1
  2184. package/node_modules/@murphai/vault-usecases/dist/usecases/workout.js +144 -4
  2185. package/node_modules/@murphai/vault-usecases/dist/usecases/workout.js.map +1 -1
  2186. package/node_modules/@murphai/vault-usecases/dist/vault-services.d.ts.map +1 -1
  2187. package/node_modules/@murphai/vault-usecases/dist/vault-services.js +3 -0
  2188. package/node_modules/@murphai/vault-usecases/dist/vault-services.js.map +1 -1
  2189. package/node_modules/@murphai/vault-usecases/dist/workouts.d.ts +1 -0
  2190. package/node_modules/@murphai/vault-usecases/dist/workouts.d.ts.map +1 -1
  2191. package/node_modules/@murphai/vault-usecases/dist/workouts.js +1 -0
  2192. package/node_modules/@murphai/vault-usecases/dist/workouts.js.map +1 -1
  2193. package/node_modules/@murphai/vault-usecases/package.json +4 -0
  2194. package/node_modules/incur/dist/Cli.js +7 -32
  2195. package/node_modules/incur/dist/Errors.d.ts +17 -0
  2196. package/node_modules/incur/dist/Errors.js +23 -0
  2197. package/node_modules/incur/dist/internal/command.d.ts +2 -0
  2198. package/node_modules/incur/dist/internal/command.js +2 -6
  2199. package/node_modules/incur/src/Cli.ts +11 -32
  2200. package/node_modules/incur/src/Errors.ts +36 -0
  2201. package/node_modules/incur/src/internal/command.ts +4 -6
  2202. package/node_modules/ink/build/ansi-tokenizer.d.ts +38 -0
  2203. package/node_modules/ink/build/ansi-tokenizer.js +316 -0
  2204. package/node_modules/ink/build/ansi-tokenizer.js.map +1 -0
  2205. package/node_modules/ink/build/apply-styles.js +175 -0
  2206. package/node_modules/ink/build/build-layout.js +77 -0
  2207. package/node_modules/ink/build/calculate-wrapped-text.js +53 -0
  2208. package/node_modules/ink/build/colorize.d.ts +3 -0
  2209. package/node_modules/ink/build/colorize.js +48 -0
  2210. package/node_modules/ink/build/colorize.js.map +1 -0
  2211. package/node_modules/ink/build/components/AccessibilityContext.d.ts +3 -0
  2212. package/node_modules/ink/build/components/AccessibilityContext.js +5 -0
  2213. package/node_modules/ink/build/components/AccessibilityContext.js.map +1 -0
  2214. package/node_modules/ink/build/components/App.d.ts +18 -0
  2215. package/node_modules/ink/build/components/App.js +351 -0
  2216. package/node_modules/ink/build/components/App.js.map +1 -0
  2217. package/node_modules/ink/build/components/AppContext.d.ts +15 -0
  2218. package/node_modules/ink/build/components/AppContext.js +11 -0
  2219. package/node_modules/ink/build/components/AppContext.js.map +1 -0
  2220. package/node_modules/ink/build/components/BackgroundContext.d.ts +4 -0
  2221. package/node_modules/ink/build/components/BackgroundContext.js +3 -0
  2222. package/node_modules/ink/build/components/BackgroundContext.js.map +1 -0
  2223. package/node_modules/ink/build/components/Box.d.ts +117 -0
  2224. package/node_modules/ink/build/components/Box.js +34 -0
  2225. package/node_modules/ink/build/components/Box.js.map +1 -0
  2226. package/node_modules/ink/build/components/Color.js +62 -0
  2227. package/node_modules/ink/build/components/Cursor.d.ts +83 -0
  2228. package/node_modules/ink/build/components/Cursor.js +53 -0
  2229. package/node_modules/ink/build/components/Cursor.js.map +1 -0
  2230. package/node_modules/ink/build/components/CursorContext.d.ts +11 -0
  2231. package/node_modules/ink/build/components/CursorContext.js +8 -0
  2232. package/node_modules/ink/build/components/CursorContext.js.map +1 -0
  2233. package/node_modules/ink/build/components/ErrorBoundary.d.ts +18 -0
  2234. package/node_modules/ink/build/components/ErrorBoundary.js +23 -0
  2235. package/node_modules/ink/build/components/ErrorBoundary.js.map +1 -0
  2236. package/node_modules/ink/build/components/ErrorOverview.d.ts +6 -0
  2237. package/node_modules/ink/build/components/ErrorOverview.js +84 -0
  2238. package/node_modules/ink/build/components/ErrorOverview.js.map +1 -0
  2239. package/node_modules/ink/build/components/FocusContext.d.ts +16 -0
  2240. package/node_modules/ink/build/components/FocusContext.js +17 -0
  2241. package/node_modules/ink/build/components/FocusContext.js.map +1 -0
  2242. package/node_modules/ink/build/components/Newline.d.ts +13 -0
  2243. package/node_modules/ink/build/components/Newline.js +8 -0
  2244. package/node_modules/ink/build/components/Newline.js.map +1 -0
  2245. package/node_modules/ink/build/components/Spacer.d.ts +7 -0
  2246. package/node_modules/ink/build/components/Spacer.js +11 -0
  2247. package/node_modules/ink/build/components/Spacer.js.map +1 -0
  2248. package/node_modules/ink/build/components/Static.d.ts +24 -0
  2249. package/node_modules/ink/build/components/Static.js +28 -0
  2250. package/node_modules/ink/build/components/Static.js.map +1 -0
  2251. package/node_modules/ink/build/components/StderrContext.d.ts +15 -0
  2252. package/node_modules/ink/build/components/StderrContext.js +13 -0
  2253. package/node_modules/ink/build/components/StderrContext.js.map +1 -0
  2254. package/node_modules/ink/build/components/StdinContext.d.ts +22 -0
  2255. package/node_modules/ink/build/components/StdinContext.js +19 -0
  2256. package/node_modules/ink/build/components/StdinContext.js.map +1 -0
  2257. package/node_modules/ink/build/components/StdoutContext.d.ts +15 -0
  2258. package/node_modules/ink/build/components/StdoutContext.js +13 -0
  2259. package/node_modules/ink/build/components/StdoutContext.js.map +1 -0
  2260. package/node_modules/ink/build/components/Text.d.ts +55 -0
  2261. package/node_modules/ink/build/components/Text.js +50 -0
  2262. package/node_modules/ink/build/components/Text.js.map +1 -0
  2263. package/node_modules/ink/build/components/Transform.d.ts +16 -0
  2264. package/node_modules/ink/build/components/Transform.js +15 -0
  2265. package/node_modules/ink/build/components/Transform.js.map +1 -0
  2266. package/node_modules/ink/build/cursor-helpers.d.ts +38 -0
  2267. package/node_modules/ink/build/cursor-helpers.js +56 -0
  2268. package/node_modules/ink/build/cursor-helpers.js.map +1 -0
  2269. package/node_modules/ink/build/devtools-window-polyfill.d.ts +1 -0
  2270. package/node_modules/ink/build/devtools-window-polyfill.js +65 -0
  2271. package/node_modules/ink/build/devtools-window-polyfill.js.map +1 -0
  2272. package/node_modules/ink/build/devtools.d.ts +1 -0
  2273. package/node_modules/ink/build/devtools.js +11 -0
  2274. package/node_modules/ink/build/devtools.js.map +1 -0
  2275. package/node_modules/ink/build/dom.d.ts +56 -0
  2276. package/node_modules/ink/build/dom.js +124 -0
  2277. package/node_modules/ink/build/dom.js.map +1 -0
  2278. package/node_modules/ink/build/experimental/apply-style.js +140 -0
  2279. package/node_modules/ink/build/experimental/dom.js +123 -0
  2280. package/node_modules/ink/build/experimental/output.js +91 -0
  2281. package/node_modules/ink/build/experimental/reconciler.js +141 -0
  2282. package/node_modules/ink/build/experimental/renderer.js +81 -0
  2283. package/node_modules/ink/build/get-max-width.d.ts +3 -0
  2284. package/node_modules/ink/build/get-max-width.js +10 -0
  2285. package/node_modules/ink/build/get-max-width.js.map +1 -0
  2286. package/node_modules/ink/build/hooks/use-app.d.ts +5 -0
  2287. package/node_modules/ink/build/hooks/use-app.js +8 -0
  2288. package/node_modules/ink/build/hooks/use-app.js.map +1 -0
  2289. package/node_modules/ink/build/hooks/use-cursor.d.ts +12 -0
  2290. package/node_modules/ink/build/hooks/use-cursor.js +29 -0
  2291. package/node_modules/ink/build/hooks/use-cursor.js.map +1 -0
  2292. package/node_modules/ink/build/hooks/use-focus-manager.d.ts +28 -0
  2293. package/node_modules/ink/build/hooks/use-focus-manager.js +17 -0
  2294. package/node_modules/ink/build/hooks/use-focus-manager.js.map +1 -0
  2295. package/node_modules/ink/build/hooks/use-focus.d.ts +29 -0
  2296. package/node_modules/ink/build/hooks/use-focus.js +42 -0
  2297. package/node_modules/ink/build/hooks/use-focus.js.map +1 -0
  2298. package/node_modules/ink/build/hooks/use-input.d.ts +131 -0
  2299. package/node_modules/ink/build/hooks/use-input.js +124 -0
  2300. package/node_modules/ink/build/hooks/use-input.js.map +1 -0
  2301. package/node_modules/ink/build/hooks/use-is-screen-reader-enabled.d.ts +5 -0
  2302. package/node_modules/ink/build/hooks/use-is-screen-reader-enabled.js +11 -0
  2303. package/node_modules/ink/build/hooks/use-is-screen-reader-enabled.js.map +1 -0
  2304. package/node_modules/ink/build/hooks/use-stderr.d.ts +5 -0
  2305. package/node_modules/ink/build/hooks/use-stderr.js +8 -0
  2306. package/node_modules/ink/build/hooks/use-stderr.js.map +1 -0
  2307. package/node_modules/ink/build/hooks/use-stdin.d.ts +5 -0
  2308. package/node_modules/ink/build/hooks/use-stdin.js +8 -0
  2309. package/node_modules/ink/build/hooks/use-stdin.js.map +1 -0
  2310. package/node_modules/ink/build/hooks/use-stdout.d.ts +5 -0
  2311. package/node_modules/ink/build/hooks/use-stdout.js +8 -0
  2312. package/node_modules/ink/build/hooks/use-stdout.js.map +1 -0
  2313. package/node_modules/ink/build/hooks/useInput.js +38 -0
  2314. package/node_modules/ink/build/index.d.ts +34 -0
  2315. package/node_modules/ink/build/index.js +20 -0
  2316. package/node_modules/ink/build/index.js.map +1 -0
  2317. package/node_modules/ink/build/ink.d.ts +90 -0
  2318. package/node_modules/ink/build/ink.js +637 -0
  2319. package/node_modules/ink/build/ink.js.map +1 -0
  2320. package/node_modules/ink/build/input-parser.d.ts +7 -0
  2321. package/node_modules/ink/build/input-parser.js +154 -0
  2322. package/node_modules/ink/build/input-parser.js.map +1 -0
  2323. package/node_modules/ink/build/instance.js +205 -0
  2324. package/node_modules/ink/build/instances.d.ts +3 -0
  2325. package/node_modules/ink/build/instances.js +8 -0
  2326. package/node_modules/ink/build/instances.js.map +1 -0
  2327. package/node_modules/ink/build/kitty-keyboard.d.ts +23 -0
  2328. package/node_modules/ink/build/kitty-keyboard.js +32 -0
  2329. package/node_modules/ink/build/kitty-keyboard.js.map +1 -0
  2330. package/node_modules/ink/build/layout.d.ts +7 -0
  2331. package/node_modules/ink/build/layout.js +33 -0
  2332. package/node_modules/ink/build/layout.js.map +1 -0
  2333. package/node_modules/ink/build/log-update.d.ts +19 -0
  2334. package/node_modules/ink/build/log-update.js +242 -0
  2335. package/node_modules/ink/build/log-update.js.map +1 -0
  2336. package/node_modules/ink/build/measure-element.d.ts +16 -0
  2337. package/node_modules/ink/build/measure-element.js +9 -0
  2338. package/node_modules/ink/build/measure-element.js.map +1 -0
  2339. package/node_modules/ink/build/measure-text.d.ts +6 -0
  2340. package/node_modules/ink/build/measure-text.js +21 -0
  2341. package/node_modules/ink/build/measure-text.js.map +1 -0
  2342. package/node_modules/ink/build/options.d.ts +52 -0
  2343. package/node_modules/ink/build/options.js +2 -0
  2344. package/node_modules/ink/build/options.js.map +1 -0
  2345. package/node_modules/ink/build/output.d.ts +35 -0
  2346. package/node_modules/ink/build/output.js +183 -0
  2347. package/node_modules/ink/build/output.js.map +1 -0
  2348. package/node_modules/ink/build/parse-keypress.d.ts +22 -0
  2349. package/node_modules/ink/build/parse-keypress.js +493 -0
  2350. package/node_modules/ink/build/parse-keypress.js.map +1 -0
  2351. package/node_modules/ink/build/reconciler.d.ts +4 -0
  2352. package/node_modules/ink/build/reconciler.js +274 -0
  2353. package/node_modules/ink/build/reconciler.js.map +1 -0
  2354. package/node_modules/ink/build/render-background.d.ts +4 -0
  2355. package/node_modules/ink/build/render-background.js +25 -0
  2356. package/node_modules/ink/build/render-background.js.map +1 -0
  2357. package/node_modules/ink/build/render-border.d.ts +4 -0
  2358. package/node_modules/ink/build/render-border.js +73 -0
  2359. package/node_modules/ink/build/render-border.js.map +1 -0
  2360. package/node_modules/ink/build/render-node-to-output.d.ts +14 -0
  2361. package/node_modules/ink/build/render-node-to-output.js +147 -0
  2362. package/node_modules/ink/build/render-node-to-output.js.map +1 -0
  2363. package/node_modules/ink/build/render-to-string.d.ts +38 -0
  2364. package/node_modules/ink/build/render-to-string.js +115 -0
  2365. package/node_modules/ink/build/render-to-string.js.map +1 -0
  2366. package/node_modules/ink/build/render.d.ts +121 -0
  2367. package/node_modules/ink/build/render.js +55 -0
  2368. package/node_modules/ink/build/render.js.map +1 -0
  2369. package/node_modules/ink/build/renderer.d.ts +8 -0
  2370. package/node_modules/ink/build/renderer.js +55 -0
  2371. package/node_modules/ink/build/renderer.js.map +1 -0
  2372. package/node_modules/ink/build/sanitize-ansi.d.ts +2 -0
  2373. package/node_modules/ink/build/sanitize-ansi.js +27 -0
  2374. package/node_modules/ink/build/sanitize-ansi.js.map +1 -0
  2375. package/node_modules/ink/build/screen-reader-update.d.ts +13 -0
  2376. package/node_modules/ink/build/screen-reader-update.js +38 -0
  2377. package/node_modules/ink/build/screen-reader-update.js.map +1 -0
  2378. package/node_modules/ink/build/squash-text-nodes.d.ts +3 -0
  2379. package/node_modules/ink/build/squash-text-nodes.js +36 -0
  2380. package/node_modules/ink/build/squash-text-nodes.js.map +1 -0
  2381. package/node_modules/ink/build/styles.d.ts +240 -0
  2382. package/node_modules/ink/build/styles.js +232 -0
  2383. package/node_modules/ink/build/styles.js.map +1 -0
  2384. package/node_modules/ink/build/utils.d.ts +2 -0
  2385. package/node_modules/ink/build/utils.js +4 -0
  2386. package/node_modules/ink/build/utils.js.map +1 -0
  2387. package/node_modules/ink/build/wrap-text.d.ts +3 -0
  2388. package/node_modules/ink/build/wrap-text.js +31 -0
  2389. package/node_modules/ink/build/wrap-text.js.map +1 -0
  2390. package/node_modules/ink/build/write-synchronized.d.ts +4 -0
  2391. package/node_modules/ink/build/write-synchronized.js +7 -0
  2392. package/node_modules/ink/build/write-synchronized.js.map +1 -0
  2393. package/node_modules/ink/package.json +126 -0
  2394. package/package.json +35 -5
  2395. package/node_modules/@murphai/assistant-engine/dist/assistant/group-phone-call-preview-authority.d.ts +0 -24
  2396. package/node_modules/@murphai/assistant-engine/dist/assistant/group-phone-call-preview-authority.d.ts.map +0 -1
  2397. package/node_modules/@murphai/assistant-engine/dist/assistant/group-phone-call-preview-authority.js +0 -125
  2398. package/node_modules/@murphai/assistant-engine/dist/assistant/group-phone-call-preview-authority.js.map +0 -1
  2399. package/node_modules/@murphai/assistant-engine/dist/assistant/newsletter-outbox.d.ts +0 -19
  2400. package/node_modules/@murphai/assistant-engine/dist/assistant/newsletter-outbox.d.ts.map +0 -1
  2401. package/node_modules/@murphai/assistant-engine/dist/assistant/newsletter-outbox.js.map +0 -1
  2402. package/node_modules/@murphai/assistant-engine/skills/general-eye-health/SKILL.md +0 -77
  2403. package/node_modules/@murphai/assistant-engine/skills/general-eye-health/references/evidence-register.md +0 -34
  2404. package/node_modules/@murphai/assistant-engine/skills/general-eye-health/references/triage-and-contact-lenses.md +0 -103
  2405. package/node_modules/@murphai/assistant-engine/skills/recovery-modalities/SKILL.md +0 -57
  2406. package/node_modules/@murphai/assistant-engine/skills/red-light-therapy/SKILL.md +0 -145
  2407. package/node_modules/@murphai/assistant-engine/skills/red-light-therapy/device-seeds.json +0 -259
  2408. package/node_modules/@murphai/inboxd/dist/connectors/email/connector.d.ts +0 -57
  2409. package/node_modules/@murphai/inboxd/dist/connectors/email/connector.d.ts.map +0 -1
  2410. package/node_modules/@murphai/inboxd/dist/connectors/email/connector.js +0 -259
  2411. package/node_modules/@murphai/inboxd/dist/connectors/email/connector.js.map +0 -1
  2412. package/node_modules/@murphai/inboxd/dist/connectors/email/normalize.d.ts +0 -44
  2413. package/node_modules/@murphai/inboxd/dist/connectors/email/normalize.d.ts.map +0 -1
  2414. package/node_modules/@murphai/inboxd/dist/connectors/email/normalize.js +0 -212
  2415. package/node_modules/@murphai/inboxd/dist/connectors/email/normalize.js.map +0 -1
  2416. package/node_modules/@murphai/inboxd/dist/connectors/email/types.d.ts +0 -69
  2417. package/node_modules/@murphai/inboxd/dist/connectors/email/types.d.ts.map +0 -1
  2418. package/node_modules/@murphai/inboxd/dist/connectors/email/types.js +0 -2
  2419. package/node_modules/@murphai/inboxd/dist/connectors/email/types.js.map +0 -1
  2420. package/node_modules/@murphai/operator-config/dist/agentmail-runtime.d.ts +0 -194
  2421. package/node_modules/@murphai/operator-config/dist/agentmail-runtime.d.ts.map +0 -1
  2422. package/node_modules/@murphai/operator-config/dist/agentmail-runtime.js +0 -385
  2423. package/node_modules/@murphai/operator-config/dist/agentmail-runtime.js.map +0 -1
  2424. package/node_modules/@murphai/setup-cli/dist/setup-agentmail.d.ts +0 -30
  2425. package/node_modules/@murphai/setup-cli/dist/setup-agentmail.d.ts.map +0 -1
  2426. package/node_modules/@murphai/setup-cli/dist/setup-agentmail.js +0 -135
  2427. package/node_modules/@murphai/setup-cli/dist/setup-agentmail.js.map +0 -1
  2428. package/node_modules/incur/src/Cli.test.ts +0 -4808
  2429. package/node_modules/incur/src/Completions.test.ts +0 -543
  2430. package/node_modules/incur/src/Errors.test.ts +0 -100
  2431. package/node_modules/incur/src/Fetch.test.ts +0 -285
  2432. package/node_modules/incur/src/Filter.test.ts +0 -237
  2433. package/node_modules/incur/src/Formatter.test.ts +0 -326
  2434. package/node_modules/incur/src/Help.test.ts +0 -414
  2435. package/node_modules/incur/src/Mcp.test.ts +0 -413
  2436. package/node_modules/incur/src/Openapi.test.ts +0 -389
  2437. package/node_modules/incur/src/Parser.test.ts +0 -378
  2438. package/node_modules/incur/src/Schema.test.ts +0 -167
  2439. package/node_modules/incur/src/Skill.test.ts +0 -441
  2440. package/node_modules/incur/src/Skillgen.test.ts +0 -77
  2441. package/node_modules/incur/src/SyncMcp.test.ts +0 -136
  2442. package/node_modules/incur/src/SyncSkills.test.ts +0 -301
  2443. package/node_modules/incur/src/Typegen.test.ts +0 -205
  2444. package/node_modules/incur/src/bun-compile.test.ts +0 -84
  2445. package/node_modules/incur/src/e2e.test.ts +0 -3441
  2446. package/node_modules/incur/src/internal/configSchema.test.ts +0 -193
  2447. package/node_modules/incur/src/internal/dereference.test.ts +0 -695
  2448. package/node_modules/incur/src/internal/helpers.test.ts +0 -75
  2449. package/node_modules/incur/src/internal/pm.test.ts +0 -38
  2450. package/node_modules/incur/src/internal/utils.test.ts +0 -50
  2451. package/node_modules/incur/src/middleware.test.ts +0 -6
@@ -3,23 +3,29 @@ 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
- 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';
13
+ import { buildCodexTurnInterruptParams, buildCodexThreadMetadataResumeParams, buildCodexThreadResumeParams, buildCodexThreadStartParams, buildCodexTurnSteerParams, buildCodexTurnStartParams, mapCodexAppServerApprovalPolicy, mapCodexAppServerSandboxMode, resolveSupportedCodexAppServerApprovalPolicy, } from './assistant-codex/app-server-requests.js';
14
+ import { createCodexActionDiagnosticsReducer, createCodexActionRuntimeIssueTracker, } from './assistant-codex/action-diagnostics.js';
15
+ import { createCodexWorkoutDeliveryContextTracker, } from './assistant-codex/workout-delivery-context.js';
16
+ import { MURPH_ASSISTANT_STYLE_TOOL, MURPH_GROUP_ROOM_MODEL_TOOL, MURPH_MEMBER_MEMORY_TOOL, } from './assistant-codex/dynamic-tool-catalog.js';
14
17
  import { createAskGrokTurnState, } from './assistant-codex/ask-grok-tool.js';
18
+ import { createAnalyzeVideoTurnState, } from './assistant-codex/analyze-video-tool.js';
15
19
  import { attachCodexAppServerProcessExitCleanup, attachCodexAbortListener, consumeCompleteLines, denyUnsupportedCodexServerRequest, rejectCodexServerRequest, readCodexRpcResponseId, readCodexRpcServerRequestId, rejectPendingCodexRpcRequests, resolvePendingCodexRpcRequest, signalCodexAppServerChild, stopCodexAppServerChild, stripUndefinedRpcParams, tryParseJsonLine, waitForCodexSpawn, withCodexRpcTimeout, writeCodexRpcMessage, } from './assistant-codex/app-server-rpc.js';
20
+ import { readCodexNonEmptyString, readCodexRecord, readCodexThreadTokenUsage, } from './assistant-codex/app-server-protocol.js';
16
21
  import { resolveCodexChildEnv, withHostedCodexModelCatalogConfigOverride, } from './assistant-codex/config.js';
17
22
  import { buildCodexProcessExitError, buildCodexStdinFailureFallback, buildCodexTurnFailedError, extractCodexThreadIdFromMessage, extractCodexThreadIdFromResult, extractCodexThreadPathFromResult, extractCodexTurnErrorMessage, extractCodexTurnIdFromMessage, extractCodexTurnIdFromResult, extractCodexTurnStatus, isFailedCodexTurnStatus, readNodeErrorCode, } from './assistant-codex/failures.js';
18
- 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';
23
+ import { buildCodexSubagentUsageDraft, extractCodexSubagentUsageDrafts, isAssistantCodexTokenUsageEventType, } from './assistant/providers/helpers.js';
24
+ import { materializeCodexImages, normalizeCodexAppServerImageDetails, } from './assistant-codex/images.js';
25
+ import { ASSISTANT_AUTHORED_RESPONSE_MEDIA_MAX_ITEMS, normalizeAssistantResponseMediaList, } from './assistant/response-media.js';
26
+ import { completeAssistantProviderStartCriticalPath, readAssistantProviderStartMonotonicTickMs, stampAssistantProviderStartCriticalPath, } from './assistant/provider-start-critical-path.js';
21
27
  export { extractCodexTraceUpdates } from './assistant-codex-events.js';
22
- export { listMurphDynamicToolNames, resolveMurphDynamicTools, } from './assistant-codex/dynamic-tools.js';
28
+ export { listMurphDynamicToolNames, resolveMurphDynamicTools, } from './assistant-codex/dynamic-tool-catalog.js';
23
29
  export { resolveCodexDisplayOptions } from './assistant-codex/config.js';
24
30
  const CODEX_RPC_CLIENT_NAME = 'murph';
25
31
  const CODEX_RPC_CLIENT_TITLE = 'Murph';
@@ -29,6 +35,12 @@ const CODEX_BACKGROUND_WORK_RPC_TIMEOUT_MS = 5_000;
29
35
  const CODEX_BACKGROUND_WORK_WAIT_TIMEOUT_MS = 120_000;
30
36
  const CODEX_BACKGROUND_WORK_POLL_INTERVAL_MS = 50;
31
37
  const CODEX_RPC_STEER_TIMEOUT_MS = 15_000;
38
+ let murphDynamicToolRuntimePromise = null;
39
+ function loadMurphDynamicToolRuntime() {
40
+ murphDynamicToolRuntimePromise ??=
41
+ import('./assistant-codex/dynamic-tools.js');
42
+ return murphDynamicToolRuntimePromise;
43
+ }
32
44
  const CODEX_APP_SERVER_INTERRUPT_CLEANUP_TIMEOUT_MS = 15_000;
33
45
  const CODEX_MANAGED_ACCOUNT_LOGIN_TIMEOUT_MS = 10 * 60 * 1000;
34
46
  const CODEX_MANAGED_ACCOUNT_CONFIG_OVERRIDES = [
@@ -40,10 +52,9 @@ const CODEX_APP_SERVER_TIMING_TRACE_SCHEMA = 'murph.assistant-codex-app-server-t
40
52
  const CODEX_APP_SERVER_TIMING_TRACE_TYPE = 'assistant.codex.app_server_timing';
41
53
  const CODEX_TRANSPORT_DIAGNOSTICS_TRACE_SCHEMA = 'murph.assistant-codex-transport-diagnostics.v1';
42
54
  const CODEX_TRANSPORT_DIAGNOSTICS_TRACE_TYPE = 'assistant.codex.transport_diagnostics';
55
+ const CODEX_GENERATED_AUDIO_PHASE_TIMING_TRACE_SCHEMA = 'murph.assistant-codex-generated-audio-phase-timing.v1';
56
+ const CODEX_GENERATED_AUDIO_PHASE_TIMING_TRACE_TYPE = 'assistant.codex.generated_audio_phase_timing';
43
57
  const CODEX_APP_SERVER_STARTUP_STDERR_MAX_LENGTH = 16_384;
44
- // Bound on distinct subagent threads whose token usage is tracked per parent
45
- // turn. Far above any sane spawn fan-out; threads past the cap are ignored.
46
- const MAX_CODEX_SUBAGENT_USAGE_THREADS = 32;
47
58
  function prepareCodexRpcParams(method, params) {
48
59
  const stripped = stripUndefinedRpcParams(params);
49
60
  if (method === 'turn/start' &&
@@ -53,64 +64,56 @@ function prepareCodexRpcParams(method, params) {
53
64
  }
54
65
  return stripped;
55
66
  }
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.
67
+ // Codex emits contextCompaction item lifecycle notifications and also retains
68
+ // the canonical deprecated thread/compacted notification. Both exact pinned
69
+ // protocol shapes are accepted; no dotted or alternate envelope aliases are.
59
70
  function isCodexContextCompactionStarted(message) {
60
- const method = typeof message.method === 'string' ? message.method : null;
61
- if (method !== 'item/started' && method !== 'item.started') {
71
+ if (message.method !== 'item/started') {
62
72
  return false;
63
73
  }
64
- return asCodexRecord(asCodexRecord(message.params)?.item)?.type === 'contextCompaction';
74
+ return readCodexRecord(readCodexRecord(message.params)?.item)?.type
75
+ === 'contextCompaction';
65
76
  }
66
77
  function readCodexContextCompactionItemId(message) {
67
- return normalizeNullableString(asCodexString(asCodexRecord(asCodexRecord(message.params)?.item)?.id));
78
+ return readCodexNonEmptyString(readCodexRecord(readCodexRecord(message.params)?.item)?.id);
68
79
  }
69
80
  function isCodexContextCompactionStartedForThread(message, threadId) {
70
- if (!isCodexContextCompactionStarted(message)) {
71
- return false;
72
- }
73
- const messageThreadId = extractCodexThreadIdFromMessage(message);
74
- return messageThreadId === null || messageThreadId === threadId;
81
+ return isCodexContextCompactionStarted(message)
82
+ && extractCodexThreadIdFromMessage(message) === threadId;
75
83
  }
76
84
  function isCodexLegacyContextCompactionCompletion(message) {
77
- const method = typeof message.method === 'string' ? message.method : null;
78
- return method === 'thread/compacted' || method === 'thread.compacted';
85
+ return message.method === 'thread/compacted';
79
86
  }
80
87
  function isCodexContextCompactionCompletion(message) {
81
88
  if (isCodexLegacyContextCompactionCompletion(message)) {
82
89
  return true;
83
90
  }
84
- const method = typeof message.method === 'string' ? message.method : null;
85
- if (method !== 'item/completed' && method !== 'item.completed') {
91
+ if (message.method !== 'item/completed') {
86
92
  return false;
87
93
  }
88
- return asCodexRecord(asCodexRecord(message.params)?.item)?.type === 'contextCompaction';
94
+ return readCodexRecord(readCodexRecord(message.params)?.item)?.type
95
+ === 'contextCompaction';
89
96
  }
90
97
  function isCodexContextCompactionCompletionForThread(message, threadId) {
91
- if (!isCodexContextCompactionCompletion(message)) {
92
- return false;
93
- }
94
- const messageThreadId = extractCodexThreadIdFromMessage(message);
95
- return messageThreadId === null || messageThreadId === threadId;
98
+ return isCodexContextCompactionCompletion(message)
99
+ && extractCodexThreadIdFromMessage(message) === threadId;
96
100
  }
97
101
  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');
102
+ return method === 'thread/tokenUsage/updated';
103
103
  }
104
104
  function readCodexThreadTokenUsageUpdate(message) {
105
- const method = typeof message.method === 'string' ? message.method : null;
106
- if (!isCodexThreadTokenUsageUpdatedMethod(method)) {
105
+ if (!isCodexThreadTokenUsageUpdatedMethod(readCodexEventMethod(message))) {
107
106
  return null;
108
107
  }
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
- };
108
+ const params = readCodexRecord(message.params);
109
+ const threadId = readCodexNonEmptyString(params?.threadId);
110
+ const tokenUsage = readCodexThreadTokenUsage(params?.tokenUsage);
111
+ return threadId && tokenUsage
112
+ ? {
113
+ last: tokenUsage.last,
114
+ threadId,
115
+ }
116
+ : null;
114
117
  }
115
118
  function buildCodexAppServerNotFoundError(codexCommand) {
116
119
  return new VaultCliError('ASSISTANT_CODEX_NOT_FOUND', `Codex app-server executable "${codexCommand}" was not found. Install @openai/codex or pass --codexCommand.`);
@@ -180,51 +183,64 @@ function appendRequiredVaultFileApprovalUrls(message, approvalUrls) {
180
183
  ...approvalUrls,
181
184
  ].filter((part) => part !== null).join('\n\n');
182
185
  }
186
+ function buildRequiredAutomationLocalAtClarificationKey(input) {
187
+ return `${input.targetKey}:${input.resolvedLocalDate}`;
188
+ }
189
+ function buildRequiredAutomationLocalAtClarification(requirement) {
190
+ const reminder = `reminder ${JSON.stringify(requirement.targetLabel)}`;
191
+ return requirement.code === 'local_at_gap'
192
+ ? `For ${reminder}, the trusted date is ${requirement.resolvedLocalDate}. What other local time on ${requirement.resolvedLocalDate} should I use?`
193
+ : `For ${reminder}, the trusted date is ${requirement.resolvedLocalDate}. Should I use the earlier or later occurrence on ${requirement.resolvedLocalDate}?`;
194
+ }
195
+ function appendRequiredAutomationLocalAtClarification(message, requirements) {
196
+ if (requirements.length === 0) {
197
+ return message;
198
+ }
199
+ const normalizedMessage = normalizeNullableString(message);
200
+ const missingClarifications = requirements
201
+ .map(buildRequiredAutomationLocalAtClarification)
202
+ .filter((clarification) => !normalizedMessage?.includes(clarification));
203
+ return [normalizedMessage, ...missingClarifications]
204
+ .filter((part) => part !== null)
205
+ .join('\n\n');
206
+ }
183
207
  export async function executeCodexAppServerTurn(input) {
208
+ const providerStartCriticalPath = stampAssistantProviderStartCriticalPath(input.providerStartCriticalPath, 'codexAppServerTurnStartedAtMonotonicMs');
184
209
  assertCodexAppServerPermissionRequest(input);
185
210
  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);
211
+ if (input.processLifetime !== 'one-shot' &&
212
+ warmCodexWorkspaceBoundaryActive) {
213
+ throw buildWarmCodexWorkspaceBoundaryBusyError();
214
+ }
215
+ const processInput = await prepareCodexAppServerProcessInput(input);
193
216
  const tempRoot = await mkdtemp(path.join(tmpdir(), 'murph-codex-'));
194
- const imagePaths = await materializeCodexImagePaths({
195
- images: input.images,
217
+ const preparedImages = await materializeCodexImages({
218
+ images: normalizeCodexAppServerImageDetails({
219
+ images: input.images,
220
+ model: input.model,
221
+ modelProvider: input.modelProvider,
222
+ turnKind: 'initial',
223
+ }),
196
224
  tempRoot,
197
225
  });
198
226
  const normalizedInput = {
199
227
  ...input,
200
228
  approvalPolicy,
201
- configOverrides: withHostedCodexModelCatalogConfigOverride({
202
- configOverrides: input.configOverrides,
203
- env: input.env,
204
- }),
229
+ configOverrides: processInput.configOverrides,
230
+ ...(providerStartCriticalPath ? { providerStartCriticalPath } : {}),
205
231
  runtimeWorkspaceRoots: input.runtimeWorkspaceRoots?.map((root) => path.resolve(root)),
206
232
  };
207
- const args = buildCodexAppServerArgs(normalizedInput);
208
- const launchKey = buildCodexAppServerLaunchKey({
209
- args,
210
- codexCommand,
211
- env: childEnv,
212
- workingDirectory,
213
- });
214
233
  const preparedInput = {
215
234
  ...normalizedInput,
216
- args,
217
- codexCommand,
218
- env: childEnv,
235
+ ...processInput,
219
236
  fetchImpl: input.fetchImpl ?? fetch,
220
237
  materializeWorkspaceArtifacts: input.materializeWorkspaceArtifacts ?? null,
221
- imagePaths,
222
- launchKey,
238
+ preparedImages,
223
239
  publicInternetFetch: input.publicInternetFetch ?? null,
224
240
  tempRoot,
225
241
  voiceMemoRuntime: input.voiceMemoRuntime ?? null,
242
+ analyzeVideoRuntime: input.analyzeVideoRuntime ?? 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;
@@ -351,13 +424,16 @@ class CodexAppServerProcess {
351
424
  // reply.
352
425
  detachedChildThreadIds = new Set();
353
426
  detachedCompletedChildThreadIds = new Set();
427
+ detachedChildMessageHandlers = new Map();
354
428
  detachedChildViolation = null;
355
429
  detachedRootThreadIds = new Set();
430
+ pendingDetachedUsageReports = new Set();
356
431
  stopCompleted = false;
357
432
  state = 'idle';
358
433
  stderrBuffer = '';
359
434
  startupStderr = '';
360
435
  startupFailure = null;
436
+ spawnReadyPromise = null;
361
437
  stdinFailure = null;
362
438
  stdoutBuffer = '';
363
439
  stopPromise = null;
@@ -408,6 +484,12 @@ class CodexAppServerProcess {
408
484
  get initializedForRpc() {
409
485
  return this.initialized;
410
486
  }
487
+ get wasPreinitialized() {
488
+ return this.initializationWasSpeculative;
489
+ }
490
+ get hasCompletedTurn() {
491
+ return this.completedTurn;
492
+ }
411
493
  get processLifetimeMs() {
412
494
  return Math.max(0, Date.now() - this.startedAt);
413
495
  }
@@ -426,6 +508,32 @@ class CodexAppServerProcess {
426
508
  get isStopped() {
427
509
  return this.state === 'stopped';
428
510
  }
511
+ get isStoppingOrStopped() {
512
+ return this.state === 'stopping' || this.state === 'stopped';
513
+ }
514
+ get hasUnclaimedSpeculativeInitialization() {
515
+ return (this.initializationWasSpeculative &&
516
+ !this.initialized &&
517
+ !this.hasInFlightTurn);
518
+ }
519
+ canClaimForLaunch(launchKey) {
520
+ return (this.launchKey === launchKey &&
521
+ !this.poisoned &&
522
+ this.state === 'idle' &&
523
+ this.child.exitCode === null &&
524
+ this.child.signalCode === null);
525
+ }
526
+ noteSpeculativeInitialization() {
527
+ this.initializationWasSpeculative = true;
528
+ }
529
+ didSpeculativeInitializationFail(error) {
530
+ return (this.initializationWasSpeculative &&
531
+ this.initializationFailure !== null &&
532
+ this.initializationFailure === error);
533
+ }
534
+ noteTurnCompleted() {
535
+ this.completedTurn = true;
536
+ }
429
537
  reserveTurn() {
430
538
  if (this.state !== 'idle' ||
431
539
  this.activeTurn ||
@@ -469,6 +577,10 @@ class CodexAppServerProcess {
469
577
  });
470
578
  }
471
579
  async waitForSpawn() {
580
+ this.spawnReadyPromise ??= this.runWaitForSpawn();
581
+ await this.spawnReadyPromise;
582
+ }
583
+ async runWaitForSpawn() {
472
584
  this.throwStartupFailure();
473
585
  try {
474
586
  await waitForCodexSpawn(this.child);
@@ -482,9 +594,18 @@ class CodexAppServerProcess {
482
594
  this.throwStartupFailure();
483
595
  }
484
596
  async initialize() {
485
- if (this.initialized) {
486
- return;
487
- }
597
+ this.initializationPromise ??= this.runInitialize().catch((error) => {
598
+ this.initializationFailure = error;
599
+ this.poisoned = true;
600
+ if (error instanceof Error) {
601
+ this.startupFailure ??= error;
602
+ }
603
+ throw error;
604
+ });
605
+ await this.initializationPromise;
606
+ }
607
+ async runInitialize() {
608
+ await this.waitForSpawn();
488
609
  await withCodexRpcTimeout(this.sendRequest('initialize', {
489
610
  clientInfo: {
490
611
  name: CODEX_RPC_CLIENT_NAME,
@@ -507,9 +628,18 @@ class CodexAppServerProcess {
507
628
  rejectPendingCodexRpcRequests(this.pendingRequests, error);
508
629
  }
509
630
  sendRequest(method, params) {
631
+ return this.beginRequest(method, params).promise;
632
+ }
633
+ sendRequestWithTimeout(input) {
634
+ const request = this.beginRequest(input.method, input.params);
635
+ return withCodexRpcTimeout(request.promise, input.timeoutMs, input.timeoutLabel, () => {
636
+ this.pendingRequests.delete(request.id);
637
+ });
638
+ }
639
+ beginRequest(method, params) {
510
640
  const id = this.nextRequestId;
511
641
  this.nextRequestId += 1;
512
- return new Promise((resolve, reject) => {
642
+ const promise = new Promise((resolve, reject) => {
513
643
  this.pendingRequests.set(id, {
514
644
  method,
515
645
  reject,
@@ -525,6 +655,7 @@ class CodexAppServerProcess {
525
655
  reject(failure);
526
656
  }
527
657
  });
658
+ return { id, promise };
528
659
  }
529
660
  sendNotification(method, params) {
530
661
  void this.writeRpcMessage({
@@ -549,6 +680,7 @@ class CodexAppServerProcess {
549
680
  this.assertBackgroundWorkProcessAvailable();
550
681
  await this.waitForDetachedChildren(signal);
551
682
  this.assertDetachedChildrenQuiescent();
683
+ await this.waitForDetachedUsageReports(signal);
552
684
  await this.assertNoBackgroundTerminals(signal);
553
685
  throwIfCodexBackgroundWorkWaitAborted(signal);
554
686
  this.assertBackgroundWorkProcessAvailable();
@@ -569,7 +701,8 @@ class CodexAppServerProcess {
569
701
  !this.poisoned &&
570
702
  this.child.exitCode === null &&
571
703
  this.child.signalCode === null &&
572
- this.state === 'idle') {
704
+ (this.state === 'idle' ||
705
+ (this.state === 'reserved' && this.activeTurn === null))) {
573
706
  return;
574
707
  }
575
708
  throw new VaultCliError('ASSISTANT_CODEX_BACKGROUND_WORK_UNAVAILABLE', 'Codex app-server background work could not be verified before the workspace boundary.', { retryable: true });
@@ -605,6 +738,18 @@ class CodexAppServerProcess {
605
738
  throw new VaultCliError('ASSISTANT_CODEX_BACKGROUND_WORK_FAILED', 'Detached Codex work was still active at the workspace boundary.', { retryable: true });
606
739
  }
607
740
  }
741
+ trackDetachedUsageReport(report) {
742
+ this.pendingDetachedUsageReports.add(report);
743
+ void report.finally(() => {
744
+ this.pendingDetachedUsageReports.delete(report);
745
+ });
746
+ }
747
+ async waitForDetachedUsageReports(signal) {
748
+ while (this.pendingDetachedUsageReports.size > 0) {
749
+ throwIfCodexBackgroundWorkWaitAborted(signal);
750
+ await Promise.all([...this.pendingDetachedUsageReports]);
751
+ }
752
+ }
608
753
  async assertNoBackgroundTerminals(signal) {
609
754
  const threadIds = new Set([
610
755
  ...this.detachedRootThreadIds,
@@ -624,6 +769,7 @@ class CodexAppServerProcess {
624
769
  clearDetachedChildBoundary() {
625
770
  this.detachedChildThreadIds.clear();
626
771
  this.detachedCompletedChildThreadIds.clear();
772
+ this.detachedChildMessageHandlers.clear();
627
773
  this.detachedChildViolation = null;
628
774
  this.detachedRootThreadIds.clear();
629
775
  }
@@ -643,6 +789,9 @@ class CodexAppServerProcess {
643
789
  }
644
790
  else {
645
791
  this.detachedChildThreadIds.add(activity.agentThreadId);
792
+ if (this.activeTurn?.onSubagentMessage) {
793
+ this.detachedChildMessageHandlers.set(activity.agentThreadId, this.activeTurn.onSubagentMessage);
794
+ }
646
795
  }
647
796
  }
648
797
  else {
@@ -690,6 +839,10 @@ class CodexAppServerProcess {
690
839
  this.endReason ??= resolveCodexAppServerEndReason(reason);
691
840
  this.normalShutdown = true;
692
841
  this.state = 'stopping';
842
+ this.rejectPending(new VaultCliError('ASSISTANT_CODEX_APP_SERVER_STOPPED', 'Codex app-server stopped before its pending RPC completed.', {
843
+ reason,
844
+ retryable: true,
845
+ }));
693
846
  let stopped = false;
694
847
  try {
695
848
  await stopCodexAppServerChild({
@@ -722,12 +875,9 @@ class CodexAppServerProcess {
722
875
  await this.stop(reason).catch(() => undefined);
723
876
  }
724
877
  isReusableFor(launchKey) {
725
- return (this.launchKey === launchKey &&
878
+ return (this.canClaimForLaunch(launchKey) &&
726
879
  this.initialized &&
727
- !this.poisoned &&
728
- this.state === 'idle' &&
729
- this.child.exitCode === null &&
730
- this.child.signalCode === null);
880
+ this.initializationFailure === null);
731
881
  }
732
882
  closeStdin() {
733
883
  if (this.stdinFailure) {
@@ -872,11 +1022,6 @@ class CodexAppServerProcess {
872
1022
  noteBoundThreadModel(model) {
873
1023
  this.boundThreadModel = normalizeNullableString(model);
874
1024
  }
875
- // Exposed so a freshly bound turn can route foreign-thread events before
876
- // its own thread/start response has produced the new thread id.
877
- get lastBoundThreadId() {
878
- return this.boundThreadId;
879
- }
880
1025
  handleIdleServerMessage(message) {
881
1026
  const responseId = readCodexRpcResponseId(message);
882
1027
  if (responseId !== null) {
@@ -900,11 +1045,41 @@ class CodexAppServerProcess {
900
1045
  writeRpcMessage: (payload) => void this.writeRpcMessage(payload),
901
1046
  });
902
1047
  }
1048
+ routeSubagentMessage(message) {
1049
+ if (readCodexRpcResponseId(message) !== null) {
1050
+ return false;
1051
+ }
1052
+ const threadId = extractCodexThreadIdFromMessage(message);
1053
+ if (!threadId || this.detachedRootThreadIds.has(threadId)) {
1054
+ return false;
1055
+ }
1056
+ let handler = this.detachedChildMessageHandlers.get(threadId);
1057
+ const activeHandler = this.activeTurn?.onSubagentMessage;
1058
+ if (!handler && activeHandler) {
1059
+ // The app-server process is exclusively owned by Assistant Engine. A
1060
+ // foreign thread notification on an active root is therefore enough to
1061
+ // correlate that child with the current turn; parent item shape is not a
1062
+ // billing authorization boundary.
1063
+ handler = activeHandler;
1064
+ this.detachedChildMessageHandlers.set(threadId, handler);
1065
+ }
1066
+ if (!handler) {
1067
+ return false;
1068
+ }
1069
+ if (isCodexTurnStartedMethod(readCodexEventMethod(message))) {
1070
+ this.detachedChildThreadIds.add(threadId);
1071
+ }
1072
+ handler(message);
1073
+ return true;
1074
+ }
903
1075
  handleStdoutLine(line) {
904
1076
  const parsed = tryParseJsonLine(line);
905
1077
  if (parsed.ok) {
906
1078
  this.observeDetachedChildLifecycle(parsed.value);
907
1079
  this.observeThreadTokenUsage(parsed.value);
1080
+ if (this.routeSubagentMessage(parsed.value)) {
1081
+ return;
1082
+ }
908
1083
  if (this.activeTurn) {
909
1084
  this.activeTurn.onParsedMessage(parsed.value);
910
1085
  }
@@ -943,6 +1118,7 @@ class CodexAppServerProcess {
943
1118
  this.state = 'stopped';
944
1119
  this.cleanupProcessExitListener();
945
1120
  if (this.normalShutdown) {
1121
+ this.rejectPending(new VaultCliError('ASSISTANT_CODEX_APP_SERVER_STOPPED', 'Codex app-server closed before its pending RPC completed.', { retryable: true }));
946
1122
  return;
947
1123
  }
948
1124
  if (this.activeTurn) {
@@ -1018,7 +1194,7 @@ function readCodexBackgroundTerminalPresence(value) {
1018
1194
  }
1019
1195
  function readCodexSubagentActivity(message) {
1020
1196
  const method = typeof message.method === 'string' ? message.method : null;
1021
- if (method !== 'item/completed' && method !== 'item.completed') {
1197
+ if (method !== 'item/completed') {
1022
1198
  return null;
1023
1199
  }
1024
1200
  const item = asCodexRecord(asCodexRecord(message.params)?.item);
@@ -1109,6 +1285,13 @@ function resolveCodexAppServerEndReason(reason) {
1109
1285
  }
1110
1286
  let warmCodexProcess = null;
1111
1287
  let warmCodexSlotLock = Promise.resolve();
1288
+ let warmCodexWorkspaceBoundaryActive = false;
1289
+ function buildWarmCodexWorkspaceBoundaryBusyError() {
1290
+ return new VaultCliError('ASSISTANT_CODEX_APP_SERVER_BUSY', 'Codex app-server cannot be claimed while a workspace boundary is active.', {
1291
+ retryable: true,
1292
+ state: 'workspace-boundary',
1293
+ });
1294
+ }
1112
1295
  async function withWarmCodexSlotLock(operation) {
1113
1296
  const previous = warmCodexSlotLock;
1114
1297
  let release;
@@ -1124,15 +1307,17 @@ async function withWarmCodexSlotLock(operation) {
1124
1307
  }
1125
1308
  }
1126
1309
  async function getOrStartWarmCodexProcess(input) {
1310
+ if (warmCodexWorkspaceBoundaryActive) {
1311
+ throw buildWarmCodexWorkspaceBoundaryBusyError();
1312
+ }
1127
1313
  const launchKey = input.launchKey;
1128
1314
  return await withWarmCodexSlotLock(async () => {
1129
- if (warmCodexProcess?.isReusableFor(launchKey)) {
1130
- warmCodexProcess.reserveTurn();
1131
- return warmCodexProcess;
1132
- }
1133
1315
  const previousProcess = warmCodexProcess;
1134
- let coldStartReason = 'node-process-first-use';
1135
1316
  if (previousProcess) {
1317
+ if (previousProcess.canClaimForLaunch(launchKey)) {
1318
+ previousProcess.reserveTurn();
1319
+ return previousProcess;
1320
+ }
1136
1321
  if (previousProcess.hasInFlightTurn) {
1137
1322
  throw previousProcess.buildBusyError('Codex app-server process is already serving a turn.');
1138
1323
  }
@@ -1144,15 +1329,121 @@ async function getOrStartWarmCodexProcess(input) {
1144
1329
  ? 'launch-identity-changed'
1145
1330
  : 'process-unhealthy';
1146
1331
  await previousProcess.stop(stopReason);
1147
- coldStartReason = previousProcess.nextColdStartReason;
1148
1332
  }
1149
1333
  const processInstance = new CodexAppServerProcess({
1150
1334
  ...input,
1151
- coldStartReason,
1335
+ coldStartReason: previousProcess?.nextColdStartReason ?? 'node-process-first-use',
1152
1336
  });
1153
1337
  warmCodexProcess = processInstance;
1154
- warmCodexProcess.reserveTurn();
1155
- return warmCodexProcess;
1338
+ processInstance.reserveTurn();
1339
+ return processInstance;
1340
+ });
1341
+ }
1342
+ async function stopExactUnclaimedWarmCodexProcess(processInstance, reason) {
1343
+ await withWarmCodexSlotLock(async () => {
1344
+ if (warmCodexProcess !== processInstance ||
1345
+ !processInstance.hasUnclaimedSpeculativeInitialization) {
1346
+ return;
1347
+ }
1348
+ await processInstance.stop(reason);
1349
+ });
1350
+ }
1351
+ function createCodexAppServerPreinitialization(processInstance) {
1352
+ return {
1353
+ async cancelPending() {
1354
+ try {
1355
+ await stopExactUnclaimedWarmCodexProcess(processInstance, 'invocation-release-during-preinitialize');
1356
+ }
1357
+ catch (error) {
1358
+ // An already-proven exit is sufficient for this optional optimization's
1359
+ // invocation-release boundary. Unproven teardown still fails closed.
1360
+ if (!processInstance.isStopped) {
1361
+ throw error;
1362
+ }
1363
+ }
1364
+ },
1365
+ };
1366
+ }
1367
+ function readCodexPreinitializeAbortReason(signal) {
1368
+ return signal.reason instanceof Error
1369
+ ? signal.reason
1370
+ : new DOMException('Codex app-server preinitialization was interrupted.', 'AbortError');
1371
+ }
1372
+ function beginCodexPreinitialize(processInstance, signal) {
1373
+ const readiness = processInstance.initialize();
1374
+ const onAbort = () => {
1375
+ void stopExactUnclaimedWarmCodexProcess(processInstance, 'preinitialize-aborted').catch(() => undefined);
1376
+ };
1377
+ signal?.addEventListener('abort', onAbort, { once: true });
1378
+ if (signal?.aborted) {
1379
+ onAbort();
1380
+ }
1381
+ void readiness.then(() => {
1382
+ signal?.removeEventListener('abort', onAbort);
1383
+ }, () => {
1384
+ signal?.removeEventListener('abort', onAbort);
1385
+ if (processInstance.isStoppingOrStopped) {
1386
+ return;
1387
+ }
1388
+ void stopExactUnclaimedWarmCodexProcess(processInstance, 'preinitialize-failure').catch(() => undefined);
1389
+ });
1390
+ }
1391
+ export async function preinitializeCodexAppServer(input) {
1392
+ const signal = input.signal ?? null;
1393
+ if (signal?.aborted) {
1394
+ throw readCodexPreinitializeAbortReason(signal);
1395
+ }
1396
+ if (warmCodexWorkspaceBoundaryActive) {
1397
+ return null;
1398
+ }
1399
+ const processInput = await prepareCodexAppServerProcessInput(input);
1400
+ if (signal?.aborted) {
1401
+ throw readCodexPreinitializeAbortReason(signal);
1402
+ }
1403
+ if (warmCodexWorkspaceBoundaryActive) {
1404
+ return null;
1405
+ }
1406
+ return await withWarmCodexSlotLock(async () => {
1407
+ if (signal?.aborted) {
1408
+ throw readCodexPreinitializeAbortReason(signal);
1409
+ }
1410
+ const processInstance = warmCodexProcess;
1411
+ if (processInstance) {
1412
+ if (processInstance.canClaimForLaunch(processInput.launchKey)) {
1413
+ if (!processInstance.initializedForRpc) {
1414
+ processInstance.noteSpeculativeInitialization();
1415
+ beginCodexPreinitialize(processInstance, signal);
1416
+ }
1417
+ return createCodexAppServerPreinitialization(processInstance);
1418
+ }
1419
+ if (processInstance.hasInFlightTurn) {
1420
+ return null;
1421
+ }
1422
+ if (processInstance.canClaimForLaunch(processInstance.launchKey)) {
1423
+ return null;
1424
+ }
1425
+ const processExited = processInstance.child.exitCode !== null ||
1426
+ processInstance.child.signalCode !== null;
1427
+ await processInstance.stop(processExited
1428
+ ? 'process-exited'
1429
+ : processInstance.launchKey !== processInput.launchKey
1430
+ ? 'launch-identity-changed'
1431
+ : 'process-unhealthy');
1432
+ }
1433
+ if (signal?.aborted) {
1434
+ throw readCodexPreinitializeAbortReason(signal);
1435
+ }
1436
+ const preparedProcess = new CodexAppServerProcess({
1437
+ args: processInput.args,
1438
+ codexCommand: processInput.codexCommand,
1439
+ coldStartReason: processInstance?.nextColdStartReason ?? 'node-process-first-use',
1440
+ env: processInput.env,
1441
+ launchKey: processInput.launchKey,
1442
+ });
1443
+ preparedProcess.noteSpeculativeInitialization();
1444
+ warmCodexProcess = preparedProcess;
1445
+ beginCodexPreinitialize(preparedProcess, signal);
1446
+ return createCodexAppServerPreinitialization(preparedProcess);
1156
1447
  });
1157
1448
  }
1158
1449
  export async function stopWarmCodexAppServer(reason = 'external-stop') {
@@ -1168,13 +1459,43 @@ export async function stopWarmCodexAppServer(reason = 'external-stop') {
1168
1459
  });
1169
1460
  }
1170
1461
  export async function waitForWarmCodexBackgroundWork(input = {}) {
1171
- await withWarmCodexSlotLock(async () => {
1172
- const processInstance = warmCodexProcess;
1173
- if (!processInstance || processInstance.isStopped) {
1462
+ if (warmCodexWorkspaceBoundaryActive) {
1463
+ throw buildWarmCodexWorkspaceBoundaryBusyError();
1464
+ }
1465
+ warmCodexWorkspaceBoundaryActive = true;
1466
+ try {
1467
+ const processInstance = await withWarmCodexSlotLock(async () => {
1468
+ const processInstance = warmCodexProcess;
1469
+ if (!processInstance || processInstance.isStopped) {
1470
+ return null;
1471
+ }
1472
+ if (processInstance.hasUnclaimedSpeculativeInitialization) {
1473
+ await processInstance.stop('workspace-boundary-during-preinitialize');
1474
+ return null;
1475
+ }
1476
+ if (processInstance.hasInFlightTurn) {
1477
+ throw processInstance.buildBusyError('Codex app-server process is serving a turn and cannot cross a workspace boundary.');
1478
+ }
1479
+ if (!processInstance.isReusableFor(processInstance.launchKey)) {
1480
+ await processInstance.stop('workspace-boundary-process-unhealthy');
1481
+ return null;
1482
+ }
1483
+ processInstance.reserveTurn();
1484
+ return processInstance;
1485
+ });
1486
+ if (!processInstance) {
1174
1487
  return;
1175
1488
  }
1176
- await processInstance.waitForBackgroundWork(input);
1177
- });
1489
+ try {
1490
+ await processInstance.waitForBackgroundWork(input);
1491
+ }
1492
+ finally {
1493
+ processInstance.releaseReservation();
1494
+ }
1495
+ }
1496
+ finally {
1497
+ warmCodexWorkspaceBoundaryActive = false;
1498
+ }
1178
1499
  }
1179
1500
  registerStopWarmCodexAppServer(stopWarmCodexAppServer);
1180
1501
  registerWaitForWarmCodexBackgroundWork(waitForWarmCodexBackgroundWork);
@@ -1185,6 +1506,9 @@ registerWaitForWarmCodexBackgroundWork(waitForWarmCodexBackgroundWork);
1185
1506
  * process may write CODEX_HOME at a time.
1186
1507
  */
1187
1508
  export async function executeCodexManagedAccountOperation(input) {
1509
+ if (warmCodexWorkspaceBoundaryActive) {
1510
+ throw buildWarmCodexWorkspaceBoundaryBusyError();
1511
+ }
1188
1512
  const workingDirectory = path.resolve(input.workingDirectory);
1189
1513
  await assertCodexAppServerWorkingDirectory(workingDirectory);
1190
1514
  const env = await resolveCodexChildEnv({
@@ -1405,63 +1729,6 @@ function estimateCodexWarmThreadCompactionUsage(threadContextTokensBefore) {
1405
1729
  totalTokens: threadContextTokensBefore,
1406
1730
  };
1407
1731
  }
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
1732
  // Non-turn compaction of the warm Codex thread, for idle-time maintenance.
1466
1733
  // Modeled on the other warm-slot lifecycle exports above. Failure handling is
1467
1734
  // deliberately blunt: any non-success poisons (kills) the warm process. A
@@ -1509,7 +1776,11 @@ export async function compactWarmCodexThread(input) {
1509
1776
  };
1510
1777
  }
1511
1778
  processInstance.reserveTurn();
1512
- return { kind: 'reserved', processInstance, vitals };
1779
+ return {
1780
+ kind: 'reserved',
1781
+ processInstance,
1782
+ vitals,
1783
+ };
1513
1784
  });
1514
1785
  if (reservation.kind !== 'reserved') {
1515
1786
  return reservation;
@@ -1520,7 +1791,6 @@ export async function compactWarmCodexThread(input) {
1520
1791
  let compactRequestAccepted = false;
1521
1792
  let compactStartedItemId = null;
1522
1793
  let compactCompletionBuffered = false;
1523
- let providerUsage = null;
1524
1794
  let compactionSettleReason = null;
1525
1795
  let resolveCompaction;
1526
1796
  const compactionSettled = new Promise((resolve) => {
@@ -1591,8 +1861,6 @@ export async function compactWarmCodexThread(input) {
1591
1861
  if (!compactRequestAccepted) {
1592
1862
  return;
1593
1863
  }
1594
- providerUsage = readCodexCompactionCompletionProviderUsage(message, vitals.threadId)
1595
- ?? providerUsage;
1596
1864
  settleCompaction('compacted');
1597
1865
  return;
1598
1866
  }
@@ -1605,8 +1873,6 @@ export async function compactWarmCodexThread(input) {
1605
1873
  if (compactStartedItemId === null || itemId !== compactStartedItemId) {
1606
1874
  return;
1607
1875
  }
1608
- providerUsage = readCodexCompactionCompletionProviderUsage(message, vitals.threadId)
1609
- ?? providerUsage;
1610
1876
  if (compactRequestAccepted) {
1611
1877
  settleCompaction('compacted');
1612
1878
  }
@@ -1658,8 +1924,7 @@ export async function compactWarmCodexThread(input) {
1658
1924
  threadContextTokensBefore: vitals.lastInputTokens,
1659
1925
  threadId: vitals.threadId,
1660
1926
  serviceTier: vitals.serviceTier,
1661
- usage: providerUsage
1662
- ?? estimateCodexWarmThreadCompactionUsage(vitals.lastInputTokens),
1927
+ usage: estimateCodexWarmThreadCompactionUsage(vitals.lastInputTokens),
1663
1928
  };
1664
1929
  }
1665
1930
  await processInstance.poison('idle-compaction-failed');
@@ -1694,19 +1959,39 @@ function hashCodexRawString(value) {
1694
1959
  .digest('hex');
1695
1960
  }
1696
1961
  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;
1962
+ return typeof message.method === 'string' ? message.method : null;
1704
1963
  }
1705
1964
  function isCodexTurnStartedMethod(method) {
1706
- return method === 'turn/started' || method === 'turn.started';
1965
+ return method === 'turn/started';
1966
+ }
1967
+ function createCodexSubagentTurnUsageKey(input) {
1968
+ return `${input.threadId}\u0000${input.turnId}`;
1969
+ }
1970
+ function readCodexSubagentEffectiveMetadataResult(input) {
1971
+ if (extractCodexThreadIdFromResult(input.result) !== input.threadId) {
1972
+ return null;
1973
+ }
1974
+ const result = readCodexRecord(input.result);
1975
+ if (!result) {
1976
+ return null;
1977
+ }
1978
+ const model = readCodexNonEmptyString(result.model);
1979
+ const modelProvider = readCodexNonEmptyString(result.modelProvider);
1980
+ const serviceTier = result.serviceTier;
1981
+ if (!model ||
1982
+ !modelProvider ||
1983
+ !Object.hasOwn(result, 'serviceTier') ||
1984
+ (serviceTier !== null && serviceTier !== 'flex')) {
1985
+ return null;
1986
+ }
1987
+ return {
1988
+ model,
1989
+ modelProvider,
1990
+ serviceTier,
1991
+ };
1707
1992
  }
1708
1993
  function isCodexTurnCompletedMethod(method) {
1709
- return method === 'turn/completed' || method === 'turn.completed';
1994
+ return method === 'turn/completed';
1710
1995
  }
1711
1996
  function buildCodexTransportDiagnosticsTraceEvent(input) {
1712
1997
  const source = readCodexTransportDiagnosticSource(input.message, input.method);
@@ -1839,6 +2124,7 @@ function readCodexDynamicToolKey(message) {
1839
2124
  return namespace && tool ? `${namespace}.${tool}` : null;
1840
2125
  }
1841
2126
  async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2127
+ const providerStartCriticalPath = stampAssistantProviderStartCriticalPath(input.providerStartCriticalPath, 'codexAppServerProcessTurnStartedAtMonotonicMs');
1842
2128
  const hostedCanonicalWritePort = readHostedCanonicalWritePort();
1843
2129
  let stdout = '';
1844
2130
  let stderr = '';
@@ -1851,7 +2137,7 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
1851
2137
  const offeredDynamicToolKeys = new Set(input.dynamicTools.map((tool) => `${tool.namespace}.${tool.name}`));
1852
2138
  let codexThreadId = null;
1853
2139
  let turnId = null;
1854
- const isReusedWarmProcess = codexProcess.initializedForRpc;
2140
+ const isReusedWarmProcess = codexProcess.hasCompletedTurn;
1855
2141
  // Completed final-phase agent messages that were followed by a steered
1856
2142
  // user-message item and then superseded by a newer response segment in the
1857
2143
  // same turn. A closed segment is held as a candidate until newer text or
@@ -1862,9 +2148,14 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
1862
2148
  let firstAssistantResponseCompleted = false;
1863
2149
  let trailingSteerCandidate = null;
1864
2150
  let completedUserMessageOrdinal = -1;
2151
+ const workoutDeliveryContext = createCodexWorkoutDeliveryContextTracker({
2152
+ contextReferences: input.trustedContextReferences,
2153
+ });
1865
2154
  let lastEventError = null;
1866
2155
  let lastEventErrorInfo = null;
1867
2156
  let responseMedia = [];
2157
+ let responseCard = null;
2158
+ let responseCardTextFallback = null;
1868
2159
  const assistantStyleSettingsOverlay = {
1869
2160
  settings: {},
1870
2161
  };
@@ -1876,25 +2167,43 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
1876
2167
  const reservedNoReplyDeliveryContextOrdinals = new Set();
1877
2168
  const additionalUsages = [];
1878
2169
  let nextDynamicToolUsageOrdinal = (input.providerRequestOrdinal ?? 0) + 1;
1879
- // Trusted turn-scoped murph.ask_grok provider-call ceiling: one counter per
1880
- // assistant turn, owned here and threaded into the dynamic-tool executor.
2170
+ // Trusted turn-scoped provider-call ceilings: one counter per assistant turn,
2171
+ // owned here and threaded into the dynamic-tool executor.
2172
+ const analyzeVideoTurnState = createAnalyzeVideoTurnState();
1881
2173
  const askGrokTurnState = createAskGrokTurnState();
1882
- const subagentTokenUsageByThread = new Map();
1883
- // Thread ids named by this turn's collab tool calls (spawn/sendInput/...),
1884
- // collected live so evidenced subagent threads win buffer slots over
1885
- // stale/unattributed foreign threads when the cap is reached.
1886
- const collabReceiverThreadIds = new Set();
2174
+ const groupSharedReadTurnState = {
2175
+ currentSenderDecisionByMessageRef: new Map(),
2176
+ invalid: false,
2177
+ readProjectionScopeKeyBatches: [],
2178
+ roster: null,
2179
+ };
2180
+ const automationRelativeDateReferenceWindows = [
2181
+ input.automationRelativeDateReferenceWindow
2182
+ ? { ...input.automationRelativeDateReferenceWindow }
2183
+ : null,
2184
+ ];
2185
+ const generateSongTurnState = input.generateSongPolicy
2186
+ ? {
2187
+ attemptCount: 0,
2188
+ policy: input.generateSongPolicy,
2189
+ }
2190
+ : null;
2191
+ const subagentTokenUsageByTurn = new Map();
1887
2192
  let rolloutRelativePath = null;
1888
2193
  let providerActionCount = 0;
1889
2194
  const providerActionItemIds = new Set();
1890
2195
  const jsonEvents = [];
1891
2196
  const runtimeIssueInputs = [];
2197
+ const actionRuntimeIssueTracker = createCodexActionRuntimeIssueTracker();
1892
2198
  let computerToolsLockedAfterUserPause = false;
2199
+ let requiredFinalResponseFallback = null;
1893
2200
  const requiredVaultFileApprovalUrls = [];
2201
+ const requiredAutomationLocalAtClarifications = new Map();
1894
2202
  const actionDiagnostics = input.onTraceEvent
1895
2203
  ? createCodexActionDiagnosticsReducer()
1896
2204
  : null;
1897
2205
  let actionDiagnosticsTraceEmitted = false;
2206
+ let requiredFinalResponseFallbackOutcome = null;
1898
2207
  const assistantStreams = new Map();
1899
2208
  const assistantStreamOrder = [];
1900
2209
  const externallyVisibleAssistantOutputDeliveryContexts = new Set();
@@ -1907,7 +2216,9 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
1907
2216
  let codexTimingTurnStartAckElapsedMs = null;
1908
2217
  let codexTimingTurnStartedNotificationElapsedMs = null;
1909
2218
  let codexTimingTurnCompletedNotificationElapsedMs = null;
2219
+ let currentTurnStartedNotificationObserved = false;
1910
2220
  let liveInterruptRequested = false;
2221
+ let terminalNoReplyInterruptRequested = false;
1911
2222
  let completeTurn = null;
1912
2223
  let failTurn = null;
1913
2224
  let liveTurnOpen = false;
@@ -1916,6 +2227,7 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
1916
2227
  let contextCompactionProgressNotified = false;
1917
2228
  let contextCompactionProgressPending = false;
1918
2229
  let releaseLiveTurn = () => { };
2230
+ const pendingDynamicToolRequests = new Set();
1919
2231
  const pendingProgressDeliveries = new Set();
1920
2232
  let dynamicToolExecutionChain = Promise.resolve();
1921
2233
  const dynamicToolAbortController = new AbortController();
@@ -1961,22 +2273,23 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
1961
2273
  stderr,
1962
2274
  });
1963
2275
  };
1964
- // Subagent usage drafts are derived lazily from the buffered per-thread
1965
- // samples so both the success result and the failure context can include
1966
- // whatever child usage was observed before the turn settled.
1967
- const buildSubagentUsageDrafts = () => extractCodexSubagentUsageDrafts({
1968
- modelProvider: normalizeNullableString(input.modelProvider) ?? null,
1969
- ordinalStart: nextDynamicToolUsageOrdinal,
1970
- parentModel: normalizeNullableString(input.model) ?? null,
1971
- parentRawEvents: jsonEvents,
1972
- serviceTier: input.serviceTier ?? null,
1973
- subagentTokenUsageByThread,
1974
- });
2276
+ const buildSubagentUsageDrafts = () => input.onAdditionalUsage
2277
+ ? []
2278
+ : extractCodexSubagentUsageDrafts({
2279
+ modelProvider: normalizeNullableString(input.modelProvider) ?? null,
2280
+ ordinalStart: nextDynamicToolUsageOrdinal,
2281
+ parentModel: normalizeNullableString(input.model) ?? null,
2282
+ serviceTier: input.serviceTier ?? null,
2283
+ subagentTokenUsageByTurn,
2284
+ });
1975
2285
  const hasNoReplyFinalActionPatch = () => finalActionPatches.some((entry) => entry.patch.kind === 'none');
1976
2286
  const listNoReplyFinalActionPatchOrdinals = () => [...new Set(finalActionPatches
1977
2287
  .filter((entry) => entry.patch.kind === 'none')
1978
2288
  .map((entry) => entry.deliveryContextOrdinal))].sort((left, right) => left - right);
1979
- const hasRequiredUserVisibleOutput = () => computerToolsLockedAfterUserPause || requiredVaultFileApprovalUrls.length > 0;
2289
+ const hasRequiredUserVisibleOutput = () => computerToolsLockedAfterUserPause ||
2290
+ requiredFinalResponseFallback !== null ||
2291
+ requiredAutomationLocalAtClarifications.size > 0 ||
2292
+ requiredVaultFileApprovalUrls.length > 0;
1980
2293
  const settleNoReplyFinalActions = async () => {
1981
2294
  if (hasRequiredUserVisibleOutput() || noReplySettlementStarted) {
1982
2295
  return;
@@ -2083,7 +2396,7 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2083
2396
  rawEvent: {
2084
2397
  schema: CODEX_APP_SERVER_TIMING_TRACE_SCHEMA,
2085
2398
  type: CODEX_APP_SERVER_TIMING_TRACE_TYPE,
2086
- ...(stage === 'initialized'
2399
+ ...(stage === 'initialized' || stage === 'preinitialized'
2087
2400
  ? {
2088
2401
  codexTimingColdStartReason: codexProcess.coldStartReason,
2089
2402
  }
@@ -2269,22 +2582,53 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2269
2582
  if (!trailingSteerCandidate) {
2270
2583
  return;
2271
2584
  }
2272
- precedingAgentMessageSegments.push(trailingSteerCandidate);
2585
+ const response = trailingSteerCandidate.card
2586
+ ? renderAssistantResponseCardText(trailingSteerCandidate.card)
2587
+ : trailingSteerCandidate.cardTextFallback
2588
+ ? renderAssistantWorkoutResponseCardText(trailingSteerCandidate.cardTextFallback)
2589
+ : trailingSteerCandidate.response;
2590
+ const transcriptResponse = trailingSteerCandidate.card
2591
+ ? renderAssistantResponseCardTranscriptText(trailingSteerCandidate.card)
2592
+ : trailingSteerCandidate.cardTextFallback
2593
+ ? renderAssistantWorkoutResponseCardTranscriptText(trailingSteerCandidate.cardTextFallback)
2594
+ : response;
2595
+ precedingAgentMessageSegments.push({
2596
+ ...(trailingSteerCandidate.contextReferences === undefined
2597
+ ? {}
2598
+ : {
2599
+ contextReferences: trailingSteerCandidate.contextReferences,
2600
+ }),
2601
+ deliveryContextOrdinal: trailingSteerCandidate.deliveryContextOrdinal,
2602
+ media: [...trailingSteerCandidate.media],
2603
+ response,
2604
+ ...(transcriptResponse === response ? {} : { transcriptResponse }),
2605
+ ...(trailingSteerCandidate.targetInputId
2606
+ ? { targetInputId: trailingSteerCandidate.targetInputId }
2607
+ : {}),
2608
+ });
2273
2609
  trailingSteerCandidate = null;
2274
2610
  };
2275
- const notifyProviderRequestStarted = () => {
2611
+ const notifyProviderRequestStarted = (providedStartedAtMonotonicMs) => {
2276
2612
  if (providerRequestStartedNotified) {
2277
2613
  return;
2278
2614
  }
2279
2615
  providerRequestStartedNotified = true;
2616
+ const providerStartedAtMonotonicMs = providedStartedAtMonotonicMs
2617
+ ?? readAssistantProviderStartMonotonicTickMs();
2280
2618
  const startedAtMs = Date.now();
2281
2619
  codexProviderRequestStartedAtMs = startedAtMs;
2620
+ const completedProviderStartCriticalPath = input.providerRequestOrdinal === 0
2621
+ ? completeAssistantProviderStartCriticalPath(providerStartCriticalPath, providerStartedAtMonotonicMs)
2622
+ : null;
2282
2623
  notifyCodexAppServerProviderRequestStartedBestEffort({
2283
2624
  hook: input.onProviderRequestStarted ?? null,
2284
2625
  startedAt: new Date(startedAtMs).toISOString(),
2285
2626
  timing: {
2286
2627
  ...codexAppServerProviderStartTiming,
2287
2628
  codexAppServerPreProviderMs: Math.max(0, startedAtMs - codexAppServerTurnStartedAt),
2629
+ ...(completedProviderStartCriticalPath
2630
+ ? { providerStartCriticalPath: completedProviderStartCriticalPath }
2631
+ : {}),
2288
2632
  },
2289
2633
  });
2290
2634
  };
@@ -2312,6 +2656,7 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2312
2656
  try {
2313
2657
  contextCompactionProgressPending = true;
2314
2658
  progressPromise = progressDelivery.send(text, {
2659
+ deliveryContextOrdinal,
2315
2660
  required: true,
2316
2661
  source: 'system',
2317
2662
  });
@@ -2346,6 +2691,21 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2346
2691
  });
2347
2692
  pendingProgressDeliveries.add(tracked);
2348
2693
  };
2694
+ const trackDynamicToolRequest = (promise) => {
2695
+ const tracked = promise
2696
+ .catch((error) => {
2697
+ rejectOnce(error);
2698
+ })
2699
+ .finally(() => {
2700
+ pendingDynamicToolRequests.delete(tracked);
2701
+ });
2702
+ pendingDynamicToolRequests.add(tracked);
2703
+ };
2704
+ const drainPendingDynamicToolRequests = async () => {
2705
+ while (pendingDynamicToolRequests.size > 0) {
2706
+ await Promise.all([...pendingDynamicToolRequests]);
2707
+ }
2708
+ };
2349
2709
  const drainPendingProgressDeliveries = async () => {
2350
2710
  while (pendingProgressDeliveries.size > 0) {
2351
2711
  await waitForCodexProgressDrain([
@@ -2376,9 +2736,60 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2376
2736
  if (hasAcceptedNoReplyPatchForDeliveryContext(deliveryContextOrdinal)) {
2377
2737
  throw new VaultCliError('ASSISTANT_RESPONSE_MEDIA_AFTER_NO_REPLY', 'Response media cannot be attached after finish_without_reply.');
2378
2738
  }
2379
- responseMedia = patch.op === 'replace'
2739
+ const nextMedia = patch.op === 'replace'
2380
2740
  ? patch.media
2381
2741
  : normalizeAssistantResponseMediaList([...responseMedia, ...patch.media]);
2742
+ if (nextMedia.length > ASSISTANT_AUTHORED_RESPONSE_MEDIA_MAX_ITEMS) {
2743
+ throw new VaultCliError('ASSISTANT_RESPONSE_MEDIA_LIMIT_EXCEEDED', `Assistant responses may attach at most ${ASSISTANT_AUTHORED_RESPONSE_MEDIA_MAX_ITEMS} media items.`);
2744
+ }
2745
+ if (responseCard !== null && nextMedia.length > 0) {
2746
+ throw new VaultCliError('ASSISTANT_RESPONSE_CARD_MEDIA_CONFLICT', 'Response media cannot be combined with a response card.');
2747
+ }
2748
+ if (responseCardTextFallback !== null && nextMedia.length > 0) {
2749
+ throw new VaultCliError('ASSISTANT_RESPONSE_CARD_MEDIA_CONFLICT', 'Response media cannot be combined with response card text recovery.');
2750
+ }
2751
+ responseMedia = nextMedia;
2752
+ };
2753
+ const applyResponseCardPatch = (card, deliveryContextOrdinal) => {
2754
+ if (deliveryContextOrdinal !== 0 ||
2755
+ currentDeliveryContextOrdinal() !== deliveryContextOrdinal) {
2756
+ throw new VaultCliError('ASSISTANT_RESPONSE_CARD_CONTEXT_ADVANCED', 'A response card cannot attach after accepted input advances the response context.');
2757
+ }
2758
+ if (hasAcceptedNoReplyPatchForDeliveryContext(deliveryContextOrdinal)) {
2759
+ throw new VaultCliError('ASSISTANT_RESPONSE_CARD_AFTER_NO_REPLY', 'A response card cannot be attached after finish_without_reply.');
2760
+ }
2761
+ if (responseCard !== null) {
2762
+ throw new VaultCliError('ASSISTANT_RESPONSE_CARD_LIMIT_REACHED', 'Only one response card may be attached to a final response.');
2763
+ }
2764
+ if (responseCardTextFallback !== null) {
2765
+ throw new VaultCliError('ASSISTANT_RESPONSE_CARD_LIMIT_REACHED', 'Only one response card outcome may be attached to a final response.');
2766
+ }
2767
+ if (responseMedia.length > 0) {
2768
+ throw new VaultCliError('ASSISTANT_RESPONSE_CARD_MEDIA_CONFLICT', 'A response card cannot be combined with response media.');
2769
+ }
2770
+ if (requiredVaultFileApprovalUrls.length > 0) {
2771
+ throw new VaultCliError('ASSISTANT_RESPONSE_CARD_VAULT_FILE_CONFLICT', 'A response card cannot replace a required vault-file approval link.');
2772
+ }
2773
+ responseCard = card;
2774
+ };
2775
+ const applyResponseCardTextFallbackPatch = (card, deliveryContextOrdinal) => {
2776
+ if (deliveryContextOrdinal !== 0 ||
2777
+ currentDeliveryContextOrdinal() !== deliveryContextOrdinal) {
2778
+ throw new VaultCliError('ASSISTANT_RESPONSE_CARD_CONTEXT_ADVANCED', 'Response card text recovery cannot attach after accepted input advances the response context.');
2779
+ }
2780
+ if (hasAcceptedNoReplyPatchForDeliveryContext(deliveryContextOrdinal)) {
2781
+ throw new VaultCliError('ASSISTANT_RESPONSE_CARD_AFTER_NO_REPLY', 'Response card text recovery cannot attach after finish_without_reply.');
2782
+ }
2783
+ if (responseCard !== null || responseCardTextFallback !== null) {
2784
+ throw new VaultCliError('ASSISTANT_RESPONSE_CARD_LIMIT_REACHED', 'Only one response card outcome may be attached to a final response.');
2785
+ }
2786
+ if (responseMedia.length > 0) {
2787
+ throw new VaultCliError('ASSISTANT_RESPONSE_CARD_MEDIA_CONFLICT', 'Response card text recovery cannot be combined with response media.');
2788
+ }
2789
+ if (requiredVaultFileApprovalUrls.length > 0) {
2790
+ throw new VaultCliError('ASSISTANT_RESPONSE_CARD_VAULT_FILE_CONFLICT', 'Response card text recovery cannot replace a required vault-file approval link.');
2791
+ }
2792
+ responseCardTextFallback = card;
2382
2793
  };
2383
2794
  const canApplyNoReplyPatch = (deliveryContextOrdinal) => {
2384
2795
  const trailingSteerCandidateOrdinal = trailingSteerCandidate?.deliveryContextOrdinal;
@@ -2393,6 +2804,12 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2393
2804
  if (responseMedia.length > 0) {
2394
2805
  return false;
2395
2806
  }
2807
+ if (responseCard !== null) {
2808
+ return false;
2809
+ }
2810
+ if (responseCardTextFallback !== null) {
2811
+ return false;
2812
+ }
2396
2813
  if (precedingAgentMessageSegments.some((segment) => segment.deliveryContextOrdinal < deliveryContextOrdinal)) {
2397
2814
  return false;
2398
2815
  }
@@ -2451,6 +2868,17 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2451
2868
  reservedNoReplyDeliveryContextOrdinals.delete(deliveryContextOrdinal);
2452
2869
  return true;
2453
2870
  };
2871
+ const applyTerminalExternalEffectNoReplyPatch = (patch, deliveryContextOrdinal) => {
2872
+ // A host-authorized external effect has crossed its delivery boundary.
2873
+ // Its terminal disposition is not a model-requested finish_without_reply
2874
+ // and must not depend on trace callback visibility.
2875
+ finalActionPatches = [
2876
+ ...finalActionPatches.filter((action) => action.deliveryContextOrdinal !== deliveryContextOrdinal),
2877
+ { deliveryContextOrdinal, patch },
2878
+ ];
2879
+ replyTargetPatches = replyTargetPatches.filter((entry) => entry.deliveryContextOrdinal !== deliveryContextOrdinal);
2880
+ reservedNoReplyDeliveryContextOrdinals.delete(deliveryContextOrdinal);
2881
+ };
2454
2882
  const resolveFinalActionPatch = (deliveryContextOrdinal) => finalActionPatches.find((action) => action.deliveryContextOrdinal === deliveryContextOrdinal)?.patch ?? null;
2455
2883
  const resolveReplyTargetPatch = (deliveryContextOrdinal) => replyTargetPatches.find((entry) => entry.deliveryContextOrdinal === deliveryContextOrdinal)?.patch ?? null;
2456
2884
  const shouldSuppressDeliveryContext = (deliveryContextOrdinal) => {
@@ -2463,7 +2891,7 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2463
2891
  const acceptJsonEvent = (message) => {
2464
2892
  jsonEvents.push(message);
2465
2893
  };
2466
- const handleAcceptedServerRequest = (message, requestId) => {
2894
+ const handleAcceptedServerRequest = async (message, requestId) => {
2467
2895
  acceptJsonEvent(message);
2468
2896
  if (turnTerminal) {
2469
2897
  void tryWriteRpcMessage({
@@ -2480,7 +2908,40 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2480
2908
  });
2481
2909
  return;
2482
2910
  }
2483
- const dynamicToolRequest = readMurphDynamicToolRequest(message);
2911
+ if (message.method !== 'item/tool/call') {
2912
+ denyUnsupportedCodexServerRequest({
2913
+ message,
2914
+ requestId,
2915
+ writeRpcMessage: (payload) => {
2916
+ void tryWriteRpcMessage(payload);
2917
+ },
2918
+ });
2919
+ return;
2920
+ }
2921
+ const dynamicToolRequestDeliveryContextOrdinal = currentDeliveryContextOrdinal();
2922
+ let dynamicToolRuntime;
2923
+ try {
2924
+ dynamicToolRuntime = await loadMurphDynamicToolRuntime();
2925
+ }
2926
+ catch {
2927
+ void tryWriteRpcMessage({
2928
+ id: requestId,
2929
+ error: {
2930
+ code: -32000,
2931
+ message: 'Dynamic tool runtime is unavailable.',
2932
+ },
2933
+ });
2934
+ return;
2935
+ }
2936
+ const { claimCurrentSenderTurnDecision, executeMurphDynamicToolRequest, isComputerDynamicToolRequest, readMurphDynamicToolRequest, } = dynamicToolRuntime;
2937
+ const dynamicToolRequest = readMurphDynamicToolRequest(message, {
2938
+ automationRelativeDateReferenceWindow: automationRelativeDateReferenceWindows[dynamicToolRequestDeliveryContextOrdinal] ?? null,
2939
+ responseCardAudience: input.groupConversation === true
2940
+ ? 'group'
2941
+ : input.groupConversation === false
2942
+ ? 'private'
2943
+ : null,
2944
+ });
2484
2945
  if (!dynamicToolRequest) {
2485
2946
  denyUnsupportedCodexServerRequest({
2486
2947
  message,
@@ -2543,6 +3004,26 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2543
3004
  reason: 'invalid_arguments',
2544
3005
  }));
2545
3006
  }
3007
+ const currentSenderDecisionClaim = claimCurrentSenderTurnDecision({
3008
+ request: dynamicToolRequest,
3009
+ turnState: groupSharedReadTurnState,
3010
+ });
3011
+ if (currentSenderDecisionClaim === 'conflict'
3012
+ || currentSenderDecisionClaim === 'unavailable') {
3013
+ void tryWriteRpcMessage({
3014
+ id: requestId,
3015
+ result: {
3016
+ success: false,
3017
+ contentItems: [{
3018
+ type: 'inputText',
3019
+ text: currentSenderDecisionClaim === 'conflict'
3020
+ ? 'current-sender request conflicts with an earlier decision for this Message'
3021
+ : 'current-sender decision authority is unavailable for this turn',
3022
+ }],
3023
+ },
3024
+ });
3025
+ return;
3026
+ }
2546
3027
  if (input.allowFinishWithoutReply === false &&
2547
3028
  (dynamicToolRequest.kind === 'finish-without-reply' ||
2548
3029
  dynamicToolRequest.kind === 'invalid-finish-without-reply-arguments')) {
@@ -2608,7 +3089,6 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2608
3089
  });
2609
3090
  return;
2610
3091
  }
2611
- const dynamicToolRequestDeliveryContextOrdinal = currentDeliveryContextOrdinal();
2612
3092
  const dynamicToolDeliveryContextOrdinal = dynamicToolRequest.kind === 'finish-without-reply' ||
2613
3093
  dynamicToolRequest.kind === 'react-to-message' ||
2614
3094
  dynamicToolRequest.kind === 'select-reply-target' ||
@@ -2668,6 +3148,7 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2668
3148
  computerToolsLockedAfterUserPause = true;
2669
3149
  closeLiveTurn();
2670
3150
  }
3151
+ let dynamicToolRequestSettled = false;
2671
3152
  const runDynamicTool = () => withHostedCanonicalWritePort(hostedCanonicalWritePort, async () => {
2672
3153
  const existingFinalAction = resolveFinalActionPatch(dynamicToolRequestDeliveryContextOrdinal);
2673
3154
  const vaultFileOwnsFinalAction = existingFinalAction?.kind === 'none' &&
@@ -2676,7 +3157,7 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2676
3157
  !vaultFileOwnsFinalAction;
2677
3158
  if (shouldSuppressDeliveryContext(dynamicToolRequestDeliveryContextOrdinal) &&
2678
3159
  !vaultFileMayClassifyAfterGenericNoReply &&
2679
- isResponseMediaDynamicToolRequest(dynamicToolRequest)) {
3160
+ isResponseAttachmentDynamicToolRequest(dynamicToolRequest)) {
2680
3161
  return {
2681
3162
  rpcResult: {
2682
3163
  contentItems: [{
@@ -2692,7 +3173,65 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2692
3173
  };
2693
3174
  }
2694
3175
  const hostedToolContext = resolveCodexAppServerHostedToolContext(input);
2695
- await hostedToolContext?.beforeToolExecution?.();
3176
+ await hostedToolContext?.beforeToolExecution?.(dynamicToolRequestDeliveryContextOrdinal);
3177
+ let requestedLocalAtRecovery = null;
3178
+ if ((dynamicToolRequest.kind === 'automation' ||
3179
+ dynamicToolRequest.kind === 'invalid-automation-arguments') &&
3180
+ dynamicToolRequest.localAtRecovery) {
3181
+ requestedLocalAtRecovery = dynamicToolRequest.localAtRecovery;
3182
+ }
3183
+ else if (dynamicToolRequest.kind ===
3184
+ 'automation-local-at-recovery-dismissal') {
3185
+ requestedLocalAtRecovery = {
3186
+ recoveryKey: dynamicToolRequest.recoveryKey,
3187
+ resolvedLocalDate: dynamicToolRequest.resolvedLocalDate,
3188
+ };
3189
+ }
3190
+ if (requestedLocalAtRecovery) {
3191
+ const clarificationKey = buildRequiredAutomationLocalAtClarificationKey({
3192
+ resolvedLocalDate: requestedLocalAtRecovery.resolvedLocalDate,
3193
+ targetKey: requestedLocalAtRecovery.recoveryKey,
3194
+ });
3195
+ if (!requiredAutomationLocalAtClarifications.has(clarificationKey)) {
3196
+ return {
3197
+ rpcResult: {
3198
+ contentItems: [{
3199
+ text: 'local-time recovery key or trusted date is not pending in this active root turn',
3200
+ type: 'inputText',
3201
+ }],
3202
+ success: false,
3203
+ },
3204
+ };
3205
+ }
3206
+ if (dynamicToolRequest.kind ===
3207
+ 'automation-local-at-recovery-dismissal') {
3208
+ requiredAutomationLocalAtClarifications.delete(clarificationKey);
3209
+ return {
3210
+ rpcResult: {
3211
+ contentItems: [{
3212
+ text: 'local-time reminder recovery dismissed; no automation was changed',
3213
+ type: 'inputText',
3214
+ }],
3215
+ success: true,
3216
+ },
3217
+ };
3218
+ }
3219
+ }
3220
+ if (dynamicToolRequest.kind === 'invalid-automation-arguments' &&
3221
+ (dynamicToolRequest.safeFailureCode === 'local_at_gap' ||
3222
+ dynamicToolRequest.safeFailureCode === 'local_at_fold') &&
3223
+ dynamicToolRequest.resolvedLocalDate &&
3224
+ dynamicToolRequest.localAtTargetKey &&
3225
+ dynamicToolRequest.localAtTargetLabel &&
3226
+ !dynamicToolRequest.localAtRecovery) {
3227
+ const requirement = {
3228
+ code: dynamicToolRequest.safeFailureCode,
3229
+ resolvedLocalDate: dynamicToolRequest.resolvedLocalDate,
3230
+ targetKey: dynamicToolRequest.localAtTargetKey,
3231
+ targetLabel: dynamicToolRequest.localAtTargetLabel,
3232
+ };
3233
+ requiredAutomationLocalAtClarifications.set(buildRequiredAutomationLocalAtClarificationKey(requirement), requirement);
3234
+ }
2696
3235
  const result = await executeMurphDynamicToolRequest({
2697
3236
  authorizeAcceptedMessageTarget: input.authorizeAcceptedMessageTarget ?? null,
2698
3237
  assistantStyleSettingsOverlay,
@@ -2701,6 +3240,9 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2701
3240
  groupRoomModelAvailable: input.dynamicTools.some((tool) => tool.namespace === MURPH_GROUP_ROOM_MODEL_TOOL.namespace &&
2702
3241
  tool.name === MURPH_GROUP_ROOM_MODEL_TOOL.name),
2703
3242
  groupRoomModelMaintenanceAuthorized: input.groupRoomModelMaintenanceAuthorized === true,
3243
+ memberMemoryAvailable: input.dynamicTools.some((tool) => tool.namespace === MURPH_MEMBER_MEMORY_TOOL.namespace &&
3244
+ tool.name === MURPH_MEMBER_MEMORY_TOOL.name),
3245
+ memberMemoryMaintenanceAuthorized: input.memberMemoryMaintenanceAuthorized === true,
2704
3246
  abortSignal: input.abortSignal
2705
3247
  ? AbortSignal.any([input.abortSignal, dynamicToolAbortController.signal])
2706
3248
  : dynamicToolAbortController.signal,
@@ -2710,30 +3252,71 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2710
3252
  hostedToolContext,
2711
3253
  materializeWorkspaceArtifacts: input.materializeWorkspaceArtifacts ?? null,
2712
3254
  currentResponseMedia: responseMedia,
3255
+ currentResponseCard: responseCard ?? responseCardTextFallback,
3256
+ groupChallengeResponseCardAllowed: input.groupConversation === true &&
3257
+ input.dynamicTools.some((tool) => tool.namespace === 'murph' &&
3258
+ tool.name === 'attach_response_card'),
3259
+ groupSharedReadTurnState,
3260
+ privateDirectResponseCardAllowed: input.groupConversation === false,
3261
+ telegramPresentationResponseCardAllowed: input.dynamicTools.some((tool) => tool.namespace === 'murph' &&
3262
+ (tool.name === 'attach_exercise_routine_card' ||
3263
+ tool.name === 'attach_telegram_rich_content')),
2713
3264
  deliveryContextOrdinal: dynamicToolRequestDeliveryContextOrdinal,
2714
3265
  nextUsageOrdinal: () => nextDynamicToolUsageOrdinal++,
3266
+ onboardingFirstReadCompletionTransitionAvailable: input.onboardingFirstReadCompletionTransitionAvailable ?? false,
2715
3267
  productFeedbackRecorder: input.productFeedbackRecorder ?? null,
2716
3268
  progressDelivery: dynamicToolRequest.kind === 'send-progress-update'
2717
3269
  ? dynamicToolProgressDelivery
2718
- : null,
3270
+ : dynamicToolRequest.kind === 'group'
3271
+ ? resolveCodexAppServerProgressDelivery(input)
3272
+ : null,
2719
3273
  publicFetchImpl: input.publicInternetFetch ?? null,
2720
3274
  request: dynamicToolRequest,
2721
3275
  requireHostedPrivateImageDelivery: input.requireHostedPrivateImageDelivery ?? false,
2722
3276
  vaultRoot: input.vaultRoot ?? null,
3277
+ voiceMemoPhaseTimingRecorder: (dynamicToolRequest.kind === 'generate-voice-memo' ||
3278
+ dynamicToolRequest.kind === 'generate-song') &&
3279
+ input.onTraceEvent
3280
+ ? (timing) => {
3281
+ emitCodexGeneratedAudioPhaseTimingTrace({
3282
+ codexThreadId,
3283
+ onTraceEvent: input.onTraceEvent,
3284
+ timing,
3285
+ });
3286
+ }
3287
+ : null,
2723
3288
  voiceMemoRuntime: dynamicToolRequest.kind === 'generate-voice-memo' ||
2724
3289
  dynamicToolRequest.kind === 'generate-song'
2725
3290
  ? input.voiceMemoRuntime ?? null
2726
3291
  : null,
3292
+ analyzeVideoRuntime: dynamicToolRequest.kind === 'analyze-video'
3293
+ ? input.analyzeVideoRuntime ?? null
3294
+ : null,
3295
+ analyzeVideoTurnState,
2727
3296
  askGrokRuntime: dynamicToolRequest.kind === 'ask-grok'
2728
3297
  ? input.askGrokRuntime ?? null
2729
3298
  : null,
2730
3299
  askGrokTurnState,
3300
+ generateSongTurnState,
2731
3301
  });
2732
3302
  return result;
2733
3303
  }).then(async (result) => {
2734
3304
  if (dynamicToolRequest.kind === 'send-progress-update') {
2735
3305
  releaseDynamicProgressPending?.();
2736
3306
  }
3307
+ if (dynamicToolRequest.kind === 'analyze-video') {
3308
+ const analyzeVideoFallback = normalizeNullableString(result.requiredFinalResponseFallback);
3309
+ if (analyzeVideoFallback !== null) {
3310
+ if (result.rpcResult.success) {
3311
+ requiredFinalResponseFallback = analyzeVideoFallback;
3312
+ requiredFinalResponseFallbackOutcome = 'analyze-video-success';
3313
+ }
3314
+ else if (requiredFinalResponseFallbackOutcome !== 'analyze-video-success') {
3315
+ requiredFinalResponseFallback = analyzeVideoFallback;
3316
+ requiredFinalResponseFallbackOutcome = 'analyze-video-failure';
3317
+ }
3318
+ }
3319
+ }
2737
3320
  for (const runtimeIssueInput of result.runtimeIssueInputs ?? []) {
2738
3321
  pushRuntimeIssueInput(runtimeIssueInput);
2739
3322
  }
@@ -2744,6 +3327,62 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2744
3327
  !requiredVaultFileApprovalUrls.includes(result.requiredVaultFileApprovalUrl)) {
2745
3328
  requiredVaultFileApprovalUrls.push(result.requiredVaultFileApprovalUrl);
2746
3329
  }
3330
+ if (result.finalActionPatch?.kind === 'none' &&
3331
+ (result.finalActionPatch.owner === 'group-email'
3332
+ || result.finalActionPatch.owner === 'current-sender-ask')) {
3333
+ if (result.externallyVisibleOutput) {
3334
+ markExternallyVisibleAssistantOutput(dynamicToolRequestDeliveryContextOrdinal);
3335
+ }
3336
+ applyTerminalExternalEffectNoReplyPatch(result.finalActionPatch, dynamicToolRequestDeliveryContextOrdinal);
3337
+ // Interrupt while the app-server is still waiting on this dynamic
3338
+ // tool request. Returning the tool result first lets Codex start a
3339
+ // follow-up provider request before the interrupt is processed, and
3340
+ // an interrupt racing that continuation can leave the turn open.
3341
+ // TurnAborted resolves the pending server request structurally, so a
3342
+ // terminal external effect must not also write a tool response.
3343
+ dynamicToolRequestSettled = true;
3344
+ await interruptLiveTurnForTerminalNoReply();
3345
+ return;
3346
+ }
3347
+ if (result.externallyVisibleOutput) {
3348
+ markExternallyVisibleAssistantOutput(dynamicToolRequestDeliveryContextOrdinal);
3349
+ }
3350
+ if (result.responseCardPatch) {
3351
+ try {
3352
+ applyResponseCardPatch(result.responseCardPatch.card, dynamicToolRequestDeliveryContextOrdinal);
3353
+ }
3354
+ catch {
3355
+ void tryWriteRpcMessage({
3356
+ id: requestId,
3357
+ result: {
3358
+ success: false,
3359
+ contentItems: [{
3360
+ type: 'inputText',
3361
+ text: 'response card unavailable for this final response',
3362
+ }],
3363
+ },
3364
+ });
3365
+ return;
3366
+ }
3367
+ }
3368
+ if (result.responseCardTextFallbackPatch) {
3369
+ try {
3370
+ applyResponseCardTextFallbackPatch(result.responseCardTextFallbackPatch.card, dynamicToolRequestDeliveryContextOrdinal);
3371
+ }
3372
+ catch {
3373
+ void tryWriteRpcMessage({
3374
+ id: requestId,
3375
+ result: {
3376
+ success: false,
3377
+ contentItems: [{
3378
+ type: 'inputText',
3379
+ text: 'response card unavailable for this final response',
3380
+ }],
3381
+ },
3382
+ });
3383
+ return;
3384
+ }
3385
+ }
2747
3386
  if (result.responseMediaPatch) {
2748
3387
  try {
2749
3388
  applyResponseMediaPatch(result.responseMediaPatch, dynamicToolRequestDeliveryContextOrdinal);
@@ -2808,14 +3447,33 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2808
3447
  result.rpcResult.success) {
2809
3448
  markExternallyVisibleAssistantOutput(dynamicToolDeliveryContextOrdinal ?? 0);
2810
3449
  }
2811
- void tryWriteRpcMessage({
3450
+ if (dynamicToolRequest.kind === 'automation' &&
3451
+ result.rpcResult.success &&
3452
+ dynamicToolRequest.localAtRecovery) {
3453
+ const recoveryKey = buildRequiredAutomationLocalAtClarificationKey({
3454
+ resolvedLocalDate: dynamicToolRequest.localAtRecovery.resolvedLocalDate,
3455
+ targetKey: dynamicToolRequest.localAtRecovery.recoveryKey,
3456
+ });
3457
+ if (requiredAutomationLocalAtClarifications.has(recoveryKey)) {
3458
+ requiredAutomationLocalAtClarifications.delete(recoveryKey);
3459
+ }
3460
+ }
3461
+ const writeFailure = tryWriteRpcMessage({
2812
3462
  id: requestId,
2813
3463
  result: result.rpcResult,
2814
3464
  });
3465
+ if (writeFailure) {
3466
+ return;
3467
+ }
3468
+ dynamicToolRequestSettled = true;
2815
3469
  }).catch((error) => {
2816
3470
  if (dynamicToolRequest.kind === 'send-progress-update') {
2817
3471
  releaseDynamicProgressPending?.();
2818
3472
  }
3473
+ if (dynamicToolRequestSettled) {
3474
+ rejectOnce(error);
3475
+ return;
3476
+ }
2819
3477
  pushRuntimeIssueInput(createDynamicToolRuntimeIssueInput({
2820
3478
  request: dynamicToolRequest,
2821
3479
  reason: 'execution_failed',
@@ -2853,6 +3511,10 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2853
3511
  const providerRequestStartedAtMs = codexProviderRequestStartedAtMs;
2854
3512
  const isTurnStartedNotification = isCodexTurnStartedMethod(method);
2855
3513
  const isTurnCompletedNotification = isCodexTurnCompletedMethod(method);
3514
+ if (isTurnStartedNotification) {
3515
+ currentTurnStartedNotificationObserved =
3516
+ turnId !== null && extractCodexTurnIdFromMessage(message) === turnId;
3517
+ }
2856
3518
  const shouldCaptureTurnStartedNotification = providerRequestStartedAtMs !== null &&
2857
3519
  isTurnStartedNotification &&
2858
3520
  codexTimingTurnStartedNotificationElapsedMs === null;
@@ -2870,13 +3532,11 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2870
3532
  codexTimingTurnCompletedNotificationElapsedMs = Math.max(0, observedAtMs - providerRequestStartedAtMs);
2871
3533
  }
2872
3534
  }
2873
- for (const receiverThreadId of readCodexCollabReceiverThreadIds(message)) {
2874
- collabReceiverThreadIds.add(receiverThreadId);
2875
- }
2876
3535
  lastEventError = extractCodexErrorMessage(message) ?? lastEventError;
2877
3536
  lastEventErrorInfo = extractCodexErrorInfo(message) ?? lastEventErrorInfo;
2878
3537
  const normalizedEvent = normalizeCodexEvent(message);
2879
- const runtimeIssueInput = buildRuntimeIssueInputForFailedCodexAction({
3538
+ const runtimeIssueInput = actionRuntimeIssueTracker.recordEvent({
3539
+ activeTurnId: turnId,
2880
3540
  normalizedEvent,
2881
3541
  rawEvent: message,
2882
3542
  });
@@ -2919,6 +3579,10 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2919
3579
  providerActionCount += 1;
2920
3580
  }
2921
3581
  const deliveryContextOrdinal = currentDeliveryContextOrdinal();
3582
+ workoutDeliveryContext.observe({
3583
+ deliveryContextOrdinal,
3584
+ event: normalizedEvent,
3585
+ });
2922
3586
  const suppressDeliveryContext = shouldSuppressDeliveryContext(deliveryContextOrdinal);
2923
3587
  const isCommentaryAssistantMessage = normalizedEvent.kind === 'assistant_message' &&
2924
3588
  normalizedEvent.messagePhase === 'commentary';
@@ -2937,7 +3601,7 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2937
3601
  }
2938
3602
  }
2939
3603
  if (normalizedEvent.kind !== 'status_item' ||
2940
- normalizedEvent.itemType !== 'context.compaction') {
3604
+ normalizedEvent.itemType !== 'contextCompaction') {
2941
3605
  input.onTraceEvent?.({
2942
3606
  codexThreadId,
2943
3607
  rawEvent: message,
@@ -2959,6 +3623,7 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2959
3623
  (completedFinalAgentMessageText !== null ||
2960
3624
  responseMedia.length > 0);
2961
3625
  if (completedFinalAgentResponse && !suppressDeliveryContext) {
3626
+ workoutDeliveryContext.recordCompletedResponse(deliveryContextOrdinal);
2962
3627
  promoteTrailingSteerCandidate();
2963
3628
  completedFinalAgentMessage = completedFinalAgentMessageText ?? '';
2964
3629
  if (!firstAssistantResponseCompleted) {
@@ -2970,10 +3635,14 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2970
3635
  if (completedFinalAgentMessage !== null) {
2971
3636
  const completedResponseDeliveryContextOrdinal = Math.max(0, completedUserMessageOrdinal);
2972
3637
  const completedResponseTargetInputId = resolveReplyTargetPatch(completedResponseDeliveryContextOrdinal)?.targetInputId ?? null;
3638
+ const contextReferences = workoutDeliveryContext.readReferences(completedResponseDeliveryContextOrdinal);
2973
3639
  trailingSteerCandidate = {
3640
+ ...(contextReferences === undefined ? {} : { contextReferences }),
2974
3641
  deliveryContextOrdinal: completedResponseDeliveryContextOrdinal,
2975
3642
  response: completedFinalAgentMessage,
2976
3643
  media: [...responseMedia],
3644
+ card: responseCard,
3645
+ cardTextFallback: responseCardTextFallback,
2977
3646
  ...(completedResponseTargetInputId
2978
3647
  ? { targetInputId: completedResponseTargetInputId }
2979
3648
  : {}),
@@ -2983,6 +3652,8 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2983
3652
  assistantStreamOrder.length = 0;
2984
3653
  responseMedia = [];
2985
3654
  }
3655
+ responseCard = null;
3656
+ responseCardTextFallback = null;
2986
3657
  completedUserMessageOrdinal += 1;
2987
3658
  }
2988
3659
  const progressEvent = extractCodexProgressEventFromNormalized(normalizedEvent);
@@ -3008,6 +3679,12 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3008
3679
  return;
3009
3680
  }
3010
3681
  const status = extractCodexTurnStatus(message);
3682
+ if (status === 'interrupted' &&
3683
+ terminalNoReplyInterruptRequested) {
3684
+ turnTerminal = true;
3685
+ completeTurn?.();
3686
+ return;
3687
+ }
3011
3688
  if (isFailedCodexTurnStatus(status)) {
3012
3689
  turnTerminal = true;
3013
3690
  failTurn?.(buildCodexTurnFailedError({
@@ -3034,30 +3711,67 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3034
3711
  });
3035
3712
  return;
3036
3713
  }
3037
- if (!isAssistantCodexTokenUsageEventType(readCodexEventMethod(message))) {
3714
+ const eventMethod = readCodexEventMethod(message);
3715
+ const messageTurnId = extractCodexTurnIdFromMessage(message);
3716
+ if (isCodexTurnStartedMethod(eventMethod)) {
3717
+ if (!messageTurnId) {
3718
+ return;
3719
+ }
3720
+ const usageKey = createCodexSubagentTurnUsageKey({
3721
+ threadId,
3722
+ turnId: messageTurnId,
3723
+ });
3724
+ if (subagentTokenUsageByTurn.has(usageKey)) {
3725
+ return;
3726
+ }
3727
+ subagentTokenUsageByTurn.set(usageKey, {
3728
+ firstEvent: null,
3729
+ lastEvent: null,
3730
+ occurredAt: new Date().toISOString(),
3731
+ providerRequestOutcome: 'succeeded',
3732
+ threadId,
3733
+ turnId: messageTurnId,
3734
+ });
3038
3735
  return;
3039
3736
  }
3040
- const sample = subagentTokenUsageByThread.get(threadId);
3041
- if (sample) {
3042
- sample.lastEvent = message;
3737
+ if (!messageTurnId) {
3043
3738
  return;
3044
3739
  }
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) {
3740
+ const usageKey = createCodexSubagentTurnUsageKey({
3741
+ threadId,
3742
+ turnId: messageTurnId,
3743
+ });
3744
+ const sample = subagentTokenUsageByTurn.get(usageKey);
3745
+ if (isCodexTurnCompletedMethod(eventMethod)) {
3746
+ if (!sample) {
3053
3747
  return;
3054
3748
  }
3055
- subagentTokenUsageByThread.delete(evictableThreadId);
3749
+ const status = extractCodexTurnStatus(message);
3750
+ sample.providerRequestOutcome = status === 'interrupted'
3751
+ ? 'aborted'
3752
+ : isFailedCodexTurnStatus(status)
3753
+ ? 'partial'
3754
+ : 'succeeded';
3755
+ if (!input.onAdditionalUsage) {
3756
+ return;
3757
+ }
3758
+ // Removing the terminal sample is the exactly-once fence.
3759
+ subagentTokenUsageByTurn.delete(usageKey);
3760
+ if (sample.firstEvent === null || sample.lastEvent === null) {
3761
+ return;
3762
+ }
3763
+ reportSubagentUsage(sample);
3764
+ return;
3056
3765
  }
3057
- subagentTokenUsageByThread.set(threadId, {
3058
- firstEvent: message,
3059
- lastEvent: message,
3060
- });
3766
+ if (!isAssistantCodexTokenUsageEventType(eventMethod)) {
3767
+ return;
3768
+ }
3769
+ if (!sample) {
3770
+ // A child token sample without an observed start has no accounting timestamp.
3771
+ return;
3772
+ }
3773
+ sample.firstEvent ??= message;
3774
+ sample.lastEvent = message;
3061
3775
  };
3062
3776
  const handleStaleParentTurnMessage = (message) => {
3063
3777
  const requestId = readCodexRpcServerRequestId(message);
@@ -3125,19 +3839,6 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3125
3839
  }
3126
3840
  return;
3127
3841
  }
3128
- // Codex owns subagent/thread lifecycle. Murph only keeps foreign thread
3129
- // traffic away from the active parent turn: token usage is buffered for
3130
- // billing, server requests are denied, and other child events are dropped.
3131
- // Before a fresh thread/start response produces this turn's thread id, the
3132
- // previous bound thread id is enough to distinguish late child traffic.
3133
- const messageThreadId = extractCodexThreadIdFromMessage(message);
3134
- const knownParentThreadId = codexThreadId ?? requestedResumeThreadId ?? codexProcess.lastBoundThreadId;
3135
- if (messageThreadId !== null &&
3136
- knownParentThreadId !== null &&
3137
- messageThreadId !== knownParentThreadId) {
3138
- handleSubagentThreadMessage(messageThreadId, message);
3139
- return;
3140
- }
3141
3842
  const messageTurnId = extractCodexTurnIdFromMessage(message);
3142
3843
  const method = readCodexEventMethod(message);
3143
3844
  const requestId = readCodexRpcServerRequestId(message);
@@ -3170,10 +3871,23 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3170
3871
  rejectPreStartParentTurnRequest(requestId);
3171
3872
  return;
3172
3873
  }
3173
- handleAcceptedServerRequest(message, requestId);
3874
+ trackDynamicToolRequest(handleAcceptedServerRequest(message, requestId));
3174
3875
  return;
3175
3876
  }
3176
- if (isReusedWarmProcess && messageTurnId === null) {
3877
+ if (messageTurnId === null &&
3878
+ method === 'model/rerouted' &&
3879
+ !currentTurnStartedNotificationObserved) {
3880
+ return;
3881
+ }
3882
+ if (isReusedWarmProcess &&
3883
+ messageTurnId === null &&
3884
+ method !== 'model/rerouted') {
3885
+ return;
3886
+ }
3887
+ if (method === 'rawResponseItem/completed' ||
3888
+ method === 'rawResponse/completed') {
3889
+ // Raw response notifications can contain provider payload content and
3890
+ // do not belong in the parent turn's persisted event surface.
3177
3891
  return;
3178
3892
  }
3179
3893
  handleAcceptedEvent(message, method);
@@ -3205,6 +3919,31 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3205
3919
  }
3206
3920
  };
3207
3921
  const sendRequest = (method, params) => codexProcess.sendRequest(method, params);
3922
+ const readSubagentEffectiveMetadata = (threadId) => codexProcess.sendRequestWithTimeout({
3923
+ method: 'thread/resume',
3924
+ params: buildCodexThreadMetadataResumeParams(threadId),
3925
+ timeoutLabel: 'thread/resume',
3926
+ timeoutMs: CODEX_BACKGROUND_WORK_RPC_TIMEOUT_MS,
3927
+ }).then((result) => readCodexSubagentEffectiveMetadataResult({ result, threadId })).catch(() => null);
3928
+ const reportSubagentUsage = (sample) => {
3929
+ const ordinal = nextDynamicToolUsageOrdinal++;
3930
+ const report = readSubagentEffectiveMetadata(sample.threadId)
3931
+ .then(async (metadata) => {
3932
+ if (!metadata) {
3933
+ return;
3934
+ }
3935
+ const draft = buildCodexSubagentUsageDraft({
3936
+ metadata,
3937
+ ordinal,
3938
+ sample,
3939
+ });
3940
+ if (draft) {
3941
+ await input.onAdditionalUsage?.(draft);
3942
+ }
3943
+ })
3944
+ .catch(() => undefined);
3945
+ codexProcess.trackDetachedUsageReport(report);
3946
+ };
3208
3947
  const requireLiveTurnIds = () => {
3209
3948
  if (!liveTurnOpen || !codexThreadId || !turnId) {
3210
3949
  throw buildLiveTurnInactiveError();
@@ -3216,15 +3955,31 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3216
3955
  };
3217
3956
  const steerLiveTurn = async (steerInput) => {
3218
3957
  const liveTurn = requireLiveTurnIds();
3219
- const steerImagePaths = await materializeCodexImagePaths({
3220
- images: steerInput.images,
3958
+ const preparedSteerImages = await materializeCodexImages({
3959
+ images: normalizeCodexAppServerImageDetails({
3960
+ images: steerInput.images,
3961
+ model: input.model,
3962
+ modelProvider: input.modelProvider,
3963
+ turnKind: 'steer',
3964
+ }),
3221
3965
  tempRoot: input.tempRoot,
3222
3966
  });
3223
- await withCodexRpcTimeout(sendRequest('turn/steer', buildCodexTurnSteerParams({
3224
- ...liveTurn,
3225
- imagePaths: steerImagePaths,
3226
- prompt: steerInput.prompt,
3227
- })), CODEX_RPC_STEER_TIMEOUT_MS, 'turn/steer');
3967
+ const deliveryContextOrdinal = automationRelativeDateReferenceWindows.length;
3968
+ automationRelativeDateReferenceWindows.push(mergeAutomationRelativeDateReferenceWindows(automationRelativeDateReferenceWindows.at(-1) ?? null, steerInput.relativeDateReferenceWindow ?? null));
3969
+ try {
3970
+ await withCodexRpcTimeout(sendRequest('turn/steer', buildCodexTurnSteerParams({
3971
+ ...liveTurn,
3972
+ images: preparedSteerImages,
3973
+ prompt: steerInput.prompt,
3974
+ })), CODEX_RPC_STEER_TIMEOUT_MS, 'turn/steer');
3975
+ }
3976
+ catch (error) {
3977
+ if (automationRelativeDateReferenceWindows.length ===
3978
+ deliveryContextOrdinal + 1) {
3979
+ automationRelativeDateReferenceWindows.pop();
3980
+ }
3981
+ throw error;
3982
+ }
3228
3983
  };
3229
3984
  const interruptLiveTurn = async () => {
3230
3985
  const liveTurn = requireLiveTurnIds();
@@ -3232,6 +3987,17 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3232
3987
  scheduleInterruptCleanupTimeout();
3233
3988
  await withCodexRpcTimeout(sendRequest('turn/interrupt', buildCodexTurnInterruptParams(liveTurn)), CODEX_RPC_STEER_TIMEOUT_MS, 'turn/interrupt');
3234
3989
  };
3990
+ const interruptLiveTurnForTerminalNoReply = async () => {
3991
+ if (!codexThreadId || !turnId || turnTerminal) {
3992
+ throw buildLiveTurnInactiveError();
3993
+ }
3994
+ terminalNoReplyInterruptRequested = true;
3995
+ scheduleInterruptCleanupTimeout();
3996
+ await withCodexRpcTimeout(sendRequest('turn/interrupt', buildCodexTurnInterruptParams({
3997
+ threadId: codexThreadId,
3998
+ turnId,
3999
+ })), CODEX_RPC_STEER_TIMEOUT_MS, 'turn/interrupt');
4000
+ };
3235
4001
  const registerLiveTurn = () => {
3236
4002
  if (computerToolsLockedAfterUserPause ||
3237
4003
  liveTurnOpen ||
@@ -3278,6 +4044,12 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3278
4044
  }));
3279
4045
  },
3280
4046
  onParsedMessage: handleParsedMessage,
4047
+ onSubagentMessage(message) {
4048
+ const threadId = extractCodexThreadIdFromMessage(message);
4049
+ if (threadId) {
4050
+ handleSubagentThreadMessage(threadId, message);
4051
+ }
4052
+ },
3281
4053
  onStderrLine(line) {
3282
4054
  const progressEvent = extractCodexStatusEventFromStderrLine(line);
3283
4055
  if (progressEvent) {
@@ -3301,7 +4073,11 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3301
4073
  emitAppServerTimingTrace('spawn-ready');
3302
4074
  await codexProcess.initialize();
3303
4075
  lifecycleStage = 'initialized';
3304
- emitAppServerTimingTrace('initialized');
4076
+ emitAppServerTimingTrace(codexProcess.wasPreinitialized ? 'preinitialized' : 'initialized');
4077
+ }
4078
+ else if (!codexProcess.hasCompletedTurn) {
4079
+ lifecycleStage = 'initialized';
4080
+ emitAppServerTimingTrace('preinitialized');
3305
4081
  }
3306
4082
  else {
3307
4083
  lifecycleStage = 'initialized';
@@ -3323,12 +4099,6 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3323
4099
  threadResult,
3324
4100
  });
3325
4101
  }
3326
- else if (normalizeNullableString(input.permissions)) {
3327
- assertCodexThreadStartPermissionAttestation({
3328
- input,
3329
- threadResult,
3330
- });
3331
- }
3332
4102
  codexThreadId = extractCodexThreadIdFromResult(threadResult) ?? codexThreadId;
3333
4103
  codexProcess.noteBoundThreadId(codexThreadId);
3334
4104
  rolloutRelativePath = resolveCodexRolloutRelativePath({
@@ -3347,26 +4117,28 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3347
4117
  codexProcess.noteBoundThreadServiceTier(input.serviceTier ?? null);
3348
4118
  const turnStartRequest = sendRequest('turn/start', buildCodexTurnStartParams({
3349
4119
  input,
3350
- imagePaths: input.imagePaths,
4120
+ images: input.preparedImages,
3351
4121
  codexThreadId,
3352
4122
  }));
4123
+ const providerStartedAtMonotonicMs = readAssistantProviderStartMonotonicTickMs();
3353
4124
  // The child can begin executing (including side-effecting commands) as
3354
4125
  // soon as the turn/start request is written, so the provider-start
3355
4126
  // barrier arms here rather than at the acknowledgement. A death between
3356
4127
  // write and response must never be classified as pre-provider work.
3357
- notifyProviderRequestStarted();
4128
+ notifyProviderRequestStarted(providerStartedAtMonotonicMs);
3358
4129
  const turnResult = await withCodexRpcTimeout(turnStartRequest, CODEX_RPC_DEFAULT_TIMEOUT_MS, 'turn/start');
3359
4130
  acceptTurnStartResultTurnId(extractCodexTurnIdFromResult(turnResult));
3360
4131
  lifecycleStage = 'turn_started';
3361
4132
  emitAppServerTimingTrace('turn-started');
3362
- registerLiveTurn();
3363
4133
  lifecycleStage = 'turn_running';
3364
4134
  await turnCompleted;
3365
4135
  clearInterruptCleanupTimer();
4136
+ await drainPendingDynamicToolRequests();
3366
4137
  await drainPendingDynamicToolExecutions();
3367
4138
  await drainPendingProgressDeliveries();
3368
4139
  emitActionDiagnosticsTrace();
3369
4140
  lifecycleStage = 'turn_completed';
4141
+ codexProcess.noteTurnCompleted();
3370
4142
  emitAppServerTimingTrace('turn-completed');
3371
4143
  closeLiveTurn();
3372
4144
  if (stdinFailure) {
@@ -3412,6 +4184,7 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3412
4184
  ? (buildRecordedTerminationError(lastEventError) ?? error)
3413
4185
  : error;
3414
4186
  emitActionDiagnosticsTrace();
4187
+ await drainPendingDynamicToolRequests();
3415
4188
  dynamicToolAbortController.abort();
3416
4189
  await drainPendingDynamicToolExecutions();
3417
4190
  await drainPendingProgressDeliveries();
@@ -3454,7 +4227,9 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3454
4227
  (latestFinalActionPatch?.kind === 'none' ||
3455
4228
  (!suppressTrailingSteerCandidateForEarlierNoReply &&
3456
4229
  (normalizeNullableString(extractedFinalMessage) !== null ||
3457
- responseMedia.length > 0)));
4230
+ responseMedia.length > 0 ||
4231
+ responseCard !== null ||
4232
+ responseCardTextFallback !== null)));
3458
4233
  if (shouldPromoteTrailingSteerCandidate) {
3459
4234
  promoteTrailingSteerCandidate();
3460
4235
  finalTrailingSteerCandidate = null;
@@ -3465,12 +4240,29 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3465
4240
  : suppressTrailingSteerCandidateForEarlierNoReply
3466
4241
  ? responseMedia
3467
4242
  : finalTrailingSteerCandidate?.media ?? responseMedia;
4243
+ const finalResponseCard = latestFinalActionPatch?.kind === 'none'
4244
+ ? responseCard
4245
+ : suppressTrailingSteerCandidateForEarlierNoReply
4246
+ ? responseCard
4247
+ : finalTrailingSteerCandidate?.card ?? responseCard;
4248
+ if (finalResponseCard !== null && finalResponseMedia.length > 0) {
4249
+ throw new VaultCliError('ASSISTANT_RESPONSE_CARD_MEDIA_CONFLICT', 'A response card cannot be combined with response media.');
4250
+ }
3468
4251
  const finalDeliveryContextOrdinal = latestFinalActionPatch?.kind === 'none'
3469
4252
  ? latestDeliveryContextOrdinal
3470
4253
  : suppressTrailingSteerCandidateForEarlierNoReply
3471
4254
  ? latestDeliveryContextOrdinal
3472
4255
  : finalTrailingSteerCandidate?.deliveryContextOrdinal ??
3473
4256
  latestDeliveryContextOrdinal;
4257
+ const finalResponseCardTextFallback = latestFinalActionPatch?.kind === 'none'
4258
+ ? responseCardTextFallback
4259
+ : suppressTrailingSteerCandidateForEarlierNoReply
4260
+ ? responseCardTextFallback
4261
+ : finalTrailingSteerCandidate?.cardTextFallback
4262
+ ?? responseCardTextFallback;
4263
+ if (finalResponseCardTextFallback !== null && finalResponseMedia.length > 0) {
4264
+ throw new VaultCliError('ASSISTANT_RESPONSE_CARD_MEDIA_CONFLICT', 'Response card text recovery cannot be combined with response media.');
4265
+ }
3474
4266
  const finalActionPatch = resolveFinalActionPatch(finalDeliveryContextOrdinal);
3475
4267
  const requiredUserVisibleOutput = hasRequiredUserVisibleOutput();
3476
4268
  const noReplySelected = finalActionPatch?.kind === 'none' && !requiredUserVisibleOutput;
@@ -3480,7 +4272,30 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3480
4272
  const modelFinalMessage = noReplySelected || suppressTrailingSteerCandidateForEarlierNoReply
3481
4273
  ? ''
3482
4274
  : selectedFinalMessage;
3483
- const finalMessage = appendRequiredVaultFileApprovalUrls(modelFinalMessage, requiredVaultFileApprovalUrls);
4275
+ const semanticFinalMessage = finalResponseCard
4276
+ ? renderAssistantResponseCardText(finalResponseCard)
4277
+ : finalResponseCardTextFallback
4278
+ ? renderAssistantWorkoutResponseCardText(finalResponseCardTextFallback)
4279
+ : modelFinalMessage;
4280
+ const requiredSemanticFinalMessage = normalizeNullableString(semanticFinalMessage) ??
4281
+ requiredFinalResponseFallback ??
4282
+ semanticFinalMessage;
4283
+ const requiredAutomationLocalAtClarificationsInOrder = [...requiredAutomationLocalAtClarifications.values()];
4284
+ const deliveredFinalResponseCard = requiredAutomationLocalAtClarificationsInOrder.length === 0
4285
+ ? finalResponseCard
4286
+ : null;
4287
+ const finalMessage = appendRequiredVaultFileApprovalUrls(appendRequiredAutomationLocalAtClarification(requiredSemanticFinalMessage, requiredAutomationLocalAtClarificationsInOrder), requiredVaultFileApprovalUrls);
4288
+ const semanticTranscriptMessage = finalResponseCard
4289
+ ? requiredAutomationLocalAtClarificationsInOrder.length === 0
4290
+ ? renderAssistantResponseCardTranscriptText(finalResponseCard)
4291
+ : renderAssistantResponseCardText(finalResponseCard)
4292
+ : finalResponseCardTextFallback
4293
+ ? renderAssistantWorkoutResponseCardTranscriptText(finalResponseCardTextFallback)
4294
+ : normalizeNullableString(modelFinalMessage) ??
4295
+ (finalResponseMedia.length > 0 ? '' : null);
4296
+ const transcriptMessage = appendRequiredAutomationLocalAtClarification(normalizeNullableString(semanticTranscriptMessage) ??
4297
+ requiredFinalResponseFallback ??
4298
+ semanticTranscriptMessage, requiredAutomationLocalAtClarificationsInOrder);
3484
4299
  if (noReplySelected &&
3485
4300
  normalizeNullableString(extractedFinalMessage) !== null) {
3486
4301
  emitCodexSuppressedFinalMessageTrace({
@@ -3493,31 +4308,44 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3493
4308
  const filteredPrecedingAgentMessageSegments = precedingAgentMessageSegments
3494
4309
  .filter((segment) => !shouldSuppressDeliveryContext(segment.deliveryContextOrdinal));
3495
4310
  const finalHasDeliverableOutput = normalizeNullableString(finalMessage) !== null ||
3496
- (!noReplySelected && finalResponseMedia.length > 0);
4311
+ (!noReplySelected && (finalResponseMedia.length > 0 ||
4312
+ deliveredFinalResponseCard !== null ||
4313
+ finalResponseCardTextFallback !== null));
4314
+ const finalResponseContextReferences = workoutDeliveryContext.readReferences(finalDeliveryContextOrdinal);
3497
4315
  return {
3498
4316
  acceptedNoReplyDeliveryContextOrdinals: acceptedNoReplyDeliveryContextOrdinals,
3499
4317
  finalAction,
3500
4318
  finalActionExplicit: finalActionPatch?.kind === 'none' && !requiredUserVisibleOutput,
3501
4319
  finalMessage,
3502
- transcriptMessage: normalizeNullableString(modelFinalMessage) ??
3503
- (finalResponseMedia.length > 0 ? '' : null),
4320
+ providerAuthoredFinalMessage: modelFinalMessage,
4321
+ transcriptMessage,
3504
4322
  reactions: reactionPatches.map((entry) => ({
3505
4323
  deliveryContextOrdinal: entry.deliveryContextOrdinal,
3506
4324
  reaction: entry.patch.reaction,
3507
4325
  targetInputId: entry.patch.targetInputId,
3508
4326
  })),
3509
4327
  precedingAgentMessageSegments: filteredPrecedingAgentMessageSegments.map((segment) => ({
4328
+ ...(segment.contextReferences === undefined
4329
+ ? {}
4330
+ : { contextReferences: segment.contextReferences }),
3510
4331
  deliveryContextOrdinal: segment.deliveryContextOrdinal,
3511
4332
  response: segment.response,
4333
+ ...(segment.transcriptResponse === undefined
4334
+ ? {}
4335
+ : { transcriptResponse: segment.transcriptResponse }),
3512
4336
  media: [...segment.media],
3513
4337
  ...(segment.targetInputId
3514
4338
  ? { targetInputId: segment.targetInputId }
3515
4339
  : {}),
3516
4340
  })),
3517
4341
  responseDeliveryContextOrdinal: finalDeliveryContextOrdinal,
4342
+ ...(finalResponseContextReferences === undefined
4343
+ ? {}
4344
+ : { responseContextReferences: finalResponseContextReferences }),
3518
4345
  targetInputId: resolveReplyTargetPatch(finalDeliveryContextOrdinal)?.targetInputId ?? null,
3519
4346
  additionalUsages: [...additionalUsages, ...buildSubagentUsageDrafts()],
3520
4347
  responseMedia: finalHasDeliverableOutput ? [...finalResponseMedia] : [],
4348
+ responseCard: finalHasDeliverableOutput ? deliveredFinalResponseCard : null,
3521
4349
  jsonEvents,
3522
4350
  providerActionCount,
3523
4351
  runtimeIssueInputs,
@@ -3529,44 +4357,22 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3529
4357
  turnId,
3530
4358
  };
3531
4359
  }
3532
- function assertCodexThreadStartPermissionAttestation(input) {
3533
- const result = asCodexRecord(input.threadResult);
3534
- const activePermissionProfile = asCodexRecord(result?.activePermissionProfile);
3535
- const actualCwd = normalizeNullableString(asCodexString(result?.cwd));
3536
- const actualRoots = asCodexStringArray(result?.runtimeWorkspaceRoots);
3537
- const instructionSources = Array.isArray(result?.instructionSources)
3538
- ? result.instructionSources
3539
- : null;
3540
- const expectedRoots = input.input.runtimeWorkspaceRoots ?? [];
3541
- const mismatchedFields = [];
3542
- const permissionProfileMismatch = normalizeNullableString(asCodexString(activePermissionProfile?.id)) !==
3543
- normalizeNullableString(input.input.permissions) ||
3544
- normalizeNullableString(asCodexString(activePermissionProfile?.extends)) !== null;
3545
- if (permissionProfileMismatch) {
3546
- mismatchedFields.push('activePermissionProfile');
3547
- }
3548
- if (!actualRoots ||
3549
- actualRoots.length !== expectedRoots.length ||
3550
- actualRoots.some((root, index) => path.resolve(root) !== path.resolve(expectedRoots[index] ?? ''))) {
3551
- mismatchedFields.push('runtimeWorkspaceRoots');
3552
- }
3553
- if (!actualCwd || path.resolve(actualCwd) !== input.input.workingDirectory) {
3554
- mismatchedFields.push('cwd');
3555
- }
3556
- if (instructionSources === null || instructionSources.length !== 0) {
3557
- mismatchedFields.push('instructionSources');
4360
+ function mergeAutomationRelativeDateReferenceWindows(preceding, current) {
4361
+ if (current === null) {
4362
+ return null;
3558
4363
  }
3559
- if (asCodexString(result?.approvalPolicy) !==
3560
- mapCodexAppServerApprovalPolicy(input.input.approvalPolicy)) {
3561
- mismatchedFields.push('approvalPolicy');
4364
+ if (preceding === null) {
4365
+ return { ...current };
3562
4366
  }
3563
- if (mismatchedFields.length === 0) {
3564
- return;
4367
+ const earliestAtMs = Math.min(Date.parse(preceding.earliestAt), Date.parse(current.earliestAt));
4368
+ const latestAtMs = Math.max(Date.parse(preceding.latestAt), Date.parse(current.latestAt));
4369
+ if (!Number.isFinite(earliestAtMs) || !Number.isFinite(latestAtMs)) {
4370
+ return null;
3565
4371
  }
3566
- throw new VaultCliError('ASSISTANT_CODEX_APP_SERVER_PERMISSION_ATTESTATION_FAILED', 'Codex app-server did not attest the requested read-only execution context.', {
3567
- mismatchedFields,
3568
- retryable: false,
3569
- });
4372
+ return {
4373
+ earliestAt: new Date(earliestAtMs).toISOString(),
4374
+ latestAt: new Date(latestAtMs).toISOString(),
4375
+ };
3570
4376
  }
3571
4377
  function emitCodexSuppressedFinalMessageTrace(input) {
3572
4378
  if (!input.onTraceEvent) {
@@ -3588,6 +4394,36 @@ function emitCodexSuppressedFinalMessageTrace(input) {
3588
4394
  // Diagnostic-only.
3589
4395
  }
3590
4396
  }
4397
+ function emitCodexGeneratedAudioPhaseTimingTrace(input) {
4398
+ if (!input.onTraceEvent) {
4399
+ return;
4400
+ }
4401
+ try {
4402
+ input.onTraceEvent({
4403
+ codexThreadId: input.codexThreadId,
4404
+ rawEvent: {
4405
+ schema: CODEX_GENERATED_AUDIO_PHASE_TIMING_TRACE_SCHEMA,
4406
+ type: CODEX_GENERATED_AUDIO_PHASE_TIMING_TRACE_TYPE,
4407
+ generatedAudioDeliveryMode: input.timing.deliveryMode,
4408
+ ...(input.timing.generationDurationMs === undefined
4409
+ ? {}
4410
+ : {
4411
+ generatedAudioGenerationDurationMs: input.timing.generationDurationMs,
4412
+ }),
4413
+ generatedAudioKind: input.timing.mediaKind,
4414
+ generatedAudioOutcome: input.timing.outcome,
4415
+ generatedAudioTerminalPhase: input.timing.terminalPhase,
4416
+ ...(input.timing.uploadDurationMs === undefined
4417
+ ? {}
4418
+ : { generatedAudioUploadDurationMs: input.timing.uploadDurationMs }),
4419
+ },
4420
+ updates: [],
4421
+ });
4422
+ }
4423
+ catch {
4424
+ // Phase timing is diagnostic-only and must not block assistant turns.
4425
+ }
4426
+ }
3591
4427
  function notifyCodexAppServerProviderRequestStartedBestEffort(input) {
3592
4428
  if (!input.hook) {
3593
4429
  return;
@@ -3605,37 +4441,44 @@ function notifyCodexAppServerProviderRequestStartedBestEffort(input) {
3605
4441
  }
3606
4442
  }
3607
4443
  function isInvalidDynamicToolRequest(request) {
3608
- return (request.kind === 'invalid-generate-image-arguments' ||
3609
- request.kind === 'invalid-automation-arguments' ||
3610
- request.kind === 'invalid-assistant-style-arguments' ||
3611
- request.kind === 'invalid-computer-arguments' ||
3612
- request.kind === 'invalid-device-arguments' ||
3613
- request.kind === 'invalid-generate-voice-memo-arguments' ||
3614
- request.kind === 'invalid-finish-without-reply-arguments' ||
3615
- request.kind === 'invalid-progress-arguments' ||
3616
- request.kind === 'invalid-reaction-arguments' ||
3617
- request.kind === 'invalid-reply-target-arguments' ||
3618
- request.kind === 'invalid-product-feedback-arguments' ||
3619
- request.kind === 'invalid-response-media-arguments');
4444
+ return 'validationDigest' in request;
3620
4445
  }
3621
4446
  function isSerializedDynamicToolRequest(request) {
3622
4447
  return request.kind === 'automation' ||
4448
+ request.kind === 'automation-local-at-recovery-dismissal' ||
4449
+ request.kind === 'invalid-automation-arguments' ||
3623
4450
  request.kind === 'device' ||
3624
4451
  request.kind === 'generate-image' ||
3625
4452
  request.kind === 'generate-voice-memo' ||
3626
4453
  request.kind === 'generate-song' ||
4454
+ request.kind === 'attach-group-challenge-response-card' ||
4455
+ request.kind === 'attach-response-card' ||
4456
+ request.kind === 'response-card-envelope-too-large' ||
3627
4457
  request.kind === 'attach-response-media' ||
3628
4458
  request.kind === 'send-vault-file' ||
4459
+ request.kind === 'pending-vault-files-list' ||
4460
+ request.kind === 'pending-vault-files-cancel' ||
3629
4461
  request.kind === 'assistant-configuration' ||
3630
4462
  request.kind === 'assistant-style' ||
3631
4463
  request.kind === 'personalization' ||
3632
4464
  request.kind === 'subscription' ||
4465
+ (request.kind === 'group' &&
4466
+ request.request.action === 'ask_current_sender' &&
4467
+ request.request.mode !== 'new') ||
3633
4468
  request.kind === 'react-to-message' ||
3634
4469
  request.kind === 'select-reply-target' ||
3635
- isComputerDynamicToolRequest(request);
4470
+ request.kind === 'computer-open' ||
4471
+ request.kind === 'computer-act' ||
4472
+ request.kind === 'computer-os-control' ||
4473
+ request.kind === 'computer-pause-for-user' ||
4474
+ request.kind === 'computer-finish-run' ||
4475
+ request.kind === 'invalid-computer-arguments';
3636
4476
  }
3637
- function isResponseMediaDynamicToolRequest(request) {
3638
- return request.kind === 'attach-response-media' ||
4477
+ function isResponseAttachmentDynamicToolRequest(request) {
4478
+ return request.kind === 'attach-group-challenge-response-card' ||
4479
+ request.kind === 'attach-response-card' ||
4480
+ request.kind === 'response-card-envelope-too-large' ||
4481
+ request.kind === 'attach-response-media' ||
3639
4482
  request.kind === 'generate-image' ||
3640
4483
  request.kind === 'generate-song' ||
3641
4484
  request.kind === 'generate-voice-memo' ||
@@ -3643,9 +4486,13 @@ function isResponseMediaDynamicToolRequest(request) {
3643
4486
  }
3644
4487
  function isInvocationScopedRootToolRequest(request) {
3645
4488
  return request.kind === 'automation' ||
4489
+ request.kind === 'automation-local-at-recovery-dismissal' ||
3646
4490
  request.kind === 'invalid-automation-arguments' ||
3647
4491
  request.kind === 'device' ||
3648
4492
  request.kind === 'invalid-device-arguments' ||
4493
+ request.kind === 'pending-vault-files-list' ||
4494
+ request.kind === 'pending-vault-files-cancel' ||
4495
+ request.kind === 'invalid-pending-vault-files-arguments' ||
3649
4496
  request.kind === 'react-to-message' ||
3650
4497
  request.kind === 'select-reply-target' ||
3651
4498
  request.kind === 'invalid-reaction-arguments' ||
@@ -3726,6 +4573,7 @@ function resolveCodexRolloutRelativePath(input) {
3726
4573
  function assertCodexResumeContextMatches(input) {
3727
4574
  const result = asCodexRecord(input.threadResult);
3728
4575
  const actualCwd = normalizeNullableString(asCodexString(result?.cwd));
4576
+ const expectedPermissions = normalizeNullableString(input.input.permissions);
3729
4577
  const checks = [
3730
4578
  [
3731
4579
  'threadId',
@@ -3745,13 +4593,30 @@ function assertCodexResumeContextMatches(input) {
3745
4593
  ],
3746
4594
  [
3747
4595
  'sandbox',
3748
- mapCodexAppServerSandboxMode(input.input.sandbox) ?? null,
4596
+ expectedPermissions
4597
+ ? null
4598
+ : mapCodexAppServerSandboxMode(input.input.sandbox) ?? null,
3749
4599
  readCodexResumeSandboxMode(result?.sandbox),
3750
4600
  ],
3751
4601
  ];
3752
4602
  const mismatchedFields = checks
3753
4603
  .filter(([, expected, actual]) => expected !== null && actual !== expected)
3754
4604
  .map(([field]) => field);
4605
+ if (expectedPermissions) {
4606
+ const activePermissionProfile = asCodexRecord(result?.activePermissionProfile);
4607
+ const actualRoots = asCodexStringArray(result?.runtimeWorkspaceRoots);
4608
+ const expectedRoots = input.input.runtimeWorkspaceRoots ?? [];
4609
+ if (normalizeNullableString(asCodexString(activePermissionProfile?.id)) !==
4610
+ expectedPermissions ||
4611
+ normalizeNullableString(asCodexString(activePermissionProfile?.extends)) !== null) {
4612
+ mismatchedFields.push('activePermissionProfile');
4613
+ }
4614
+ if (!actualRoots ||
4615
+ actualRoots.length !== expectedRoots.length ||
4616
+ actualRoots.some((root, index) => path.resolve(root) !== path.resolve(expectedRoots[index] ?? ''))) {
4617
+ mismatchedFields.push('runtimeWorkspaceRoots');
4618
+ }
4619
+ }
3755
4620
  if (mismatchedFields.length === 0) {
3756
4621
  return;
3757
4622
  }
@@ -3812,14 +4677,13 @@ function normalizeCodexRolloutRelativePath(value, codexThreadId) {
3812
4677
  return value;
3813
4678
  }
3814
4679
  function extractCodexProviderActionKey(normalizedEvent, rawEvent) {
4680
+ if (isCodexProductFeedbackDynamicToolEvent(rawEvent)) {
4681
+ return null;
4682
+ }
3815
4683
  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)) {
4684
+ if (normalizedEvent.itemType !== 'commandExecution' &&
4685
+ normalizedEvent.itemType !== 'dynamicToolCall' &&
4686
+ normalizedEvent.itemType !== 'fileChange') {
3823
4687
  return null;
3824
4688
  }
3825
4689
  return (normalizedEvent.itemId ??
@@ -3833,17 +4697,10 @@ function extractCodexProviderActionKey(normalizedEvent, rawEvent) {
3833
4697
  providerActionFallbackKeyFromNormalized(normalizedEvent));
3834
4698
  }
3835
4699
  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');
4700
+ const item = readCodexRecord(readCodexRecord(event.params)?.item);
4701
+ return (item?.type === 'dynamicToolCall' &&
4702
+ item.namespace === 'murph' &&
4703
+ item.tool === 'submit_product_feedback');
3847
4704
  }
3848
4705
  function providerActionFallbackKeyFromNormalized(event) {
3849
4706
  switch (event.kind) {