@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
@@ -1,3441 +0,0 @@
1
- import { Cli, Errors, Skill, Typegen, z } from 'incur'
2
-
3
- import { app as honoApp } from '../test/fixtures/hono-api.js'
4
-
5
- let __mockSkillsHash: string | undefined
6
- let __mockSkillsInstalled = true
7
-
8
- const originalIsTTY = process.stdout.isTTY
9
- beforeAll(() => {
10
- ;(process.stdout as any).isTTY = false
11
- })
12
- afterAll(() => {
13
- ;(process.stdout as any).isTTY = originalIsTTY
14
- })
15
-
16
- vi.mock('./SyncSkills.js', async (importOriginal) => {
17
- const actual = await importOriginal<typeof import('./SyncSkills.js')>()
18
- return {
19
- ...actual,
20
- hasInstalledSkills: () => __mockSkillsInstalled,
21
- readHash: () => __mockSkillsHash,
22
- }
23
- })
24
-
25
- describe('routing', () => {
26
- test('top-level command', async () => {
27
- const { output } = await serve(createApp(), ['ping'])
28
- expect(output).toMatchInlineSnapshot(`
29
- "pong: true
30
- "
31
- `)
32
- })
33
-
34
- test('group command', async () => {
35
- const { output } = await serve(createApp(), ['auth', 'logout'])
36
- expect(output).toMatchInlineSnapshot(`
37
- "loggedOut: true
38
- "
39
- `)
40
- })
41
-
42
- test('nested group command (3 levels deep)', async () => {
43
- const { output } = await serve(createApp(), ['project', 'deploy', 'status', 'd-456'])
44
- expect(output).toMatchInlineSnapshot(`
45
- "deployId: d-456
46
- status: running
47
- progress: 75
48
- "
49
- `)
50
- })
51
-
52
- test('mounted leaf CLI as single command', async () => {
53
- const { output } = await serve(createApp(), ['config'])
54
- expect(output).toMatchInlineSnapshot(`
55
- "apiUrl: "https://api.example.com"
56
- timeout: 30
57
- debug: false
58
- "
59
- `)
60
- })
61
-
62
- test('mounted leaf CLI with args', async () => {
63
- const { output } = await serve(createApp(), ['config', 'apiUrl'])
64
- expect(output).toMatchInlineSnapshot(`
65
- "key: apiUrl
66
- value: some-value
67
- "
68
- `)
69
- })
70
-
71
- test('unknown top-level command', async () => {
72
- const { output, exitCode } = await serve(createApp(), ['nonexistent'])
73
- expect(exitCode).toBe(1)
74
- expect(output).toMatchInlineSnapshot(`
75
- "code: COMMAND_NOT_FOUND
76
- message: 'nonexistent' is not a command for 'app'.
77
- cta:
78
- description: "Suggested command:"
79
- commands[1]{command,description}:
80
- app --help,see all available commands
81
- "
82
- `)
83
- })
84
-
85
- test('unknown top-level command shows human error in TTY', async () => {
86
- ;(process.stdout as any).isTTY = true
87
- const { output, exitCode } = await serve(createApp(), ['nonexistent'])
88
- ;(process.stdout as any).isTTY = false
89
- expect(exitCode).toBe(1)
90
- expect(output).toMatchInlineSnapshot(`
91
- "Error: 'nonexistent' is not a command for 'app'.
92
-
93
- Suggested command:
94
- app --help # see all available commands
95
- "
96
- `)
97
- })
98
-
99
- test('unknown subcommand lists available', async () => {
100
- const { output, exitCode } = await serve(createApp(), ['auth', 'whoami'])
101
- expect(exitCode).toBe(1)
102
- expect(output).toMatchInlineSnapshot(`
103
- "code: COMMAND_NOT_FOUND
104
- message: 'whoami' is not a command for 'app auth'.
105
- cta:
106
- description: "Suggested command:"
107
- commands[1]{command,description}:
108
- app auth --help,see all available commands
109
- "
110
- `)
111
- })
112
-
113
- test('unknown nested subcommand', async () => {
114
- const { output, exitCode } = await serve(createApp(), ['project', 'deploy', 'nope'])
115
- expect(exitCode).toBe(1)
116
- expect(output).toMatchInlineSnapshot(`
117
- "code: COMMAND_NOT_FOUND
118
- message: 'nope' is not a command for 'app project deploy'.
119
- cta:
120
- description: "Suggested command:"
121
- commands[1]{command,description}:
122
- app project deploy --help,see all available commands
123
- "
124
- `)
125
- })
126
- })
127
-
128
- describe('args and options', () => {
129
- test('positional args in order', async () => {
130
- const { output } = await serve(createApp(), ['echo', 'hello'])
131
- expect(output).toMatchInlineSnapshot(`
132
- "result[1]: hello
133
- "
134
- `)
135
- })
136
-
137
- test('--flag value form', async () => {
138
- const { output } = await serve(createApp(), ['echo', 'hello', '--upper', '--prefix', '>>'])
139
- expect(output).toMatchInlineSnapshot(`
140
- "result[1]: >> HELLO
141
- "
142
- `)
143
- })
144
-
145
- test('stacked short aliases (-up value)', async () => {
146
- const { output } = await serve(createApp(), ['echo', 'hello', '-up', '>>'])
147
- expect(output).toMatchInlineSnapshot(`
148
- "result[1]: >> HELLO
149
- "
150
- `)
151
- })
152
-
153
- test('multiple options combined', async () => {
154
- const { output } = await serve(createApp(), ['echo', 'hi', '--upper', '--prefix', '!'])
155
- expect(output).toMatchInlineSnapshot(`
156
- "result[1]: ! HI
157
- "
158
- `)
159
- })
160
-
161
- test('--no-flag negation for booleans', async () => {
162
- const { output } = await serve(createApp(), [
163
- 'project',
164
- 'list',
165
- '--no-archived',
166
- '--format',
167
- 'json',
168
- ])
169
- const parsed = json(output)
170
- expect(parsed.items.every((i: any) => !i.archived)).toBe(true)
171
- })
172
-
173
- test('array option collects multiple values', async () => {
174
- const { output } = await serve(createApp(), [
175
- 'auth',
176
- 'login',
177
- '--scopes',
178
- 'read',
179
- '--scopes',
180
- 'write',
181
- '--full-output',
182
- '--format',
183
- 'json',
184
- ])
185
- const parsed = json(output)
186
- expect(parsed.data.scopes).toMatchInlineSnapshot(`
187
- [
188
- "read",
189
- "write",
190
- ]
191
- `)
192
- })
193
-
194
- test('number coercion from argv strings', async () => {
195
- const { output } = await serve(createApp(), [
196
- 'project',
197
- 'list',
198
- '--limit',
199
- '5',
200
- '--full-output',
201
- '--format',
202
- 'json',
203
- ])
204
- const parsed = json(output)
205
- expect(parsed.data.total).toBe(1)
206
- })
207
-
208
- test('enum validation fails for invalid value', async () => {
209
- const { output, exitCode } = await serve(createApp(), ['project', 'list', '--sort', 'invalid'])
210
- expect(exitCode).toBe(1)
211
- expect(output).toContain('Error')
212
- expect(output).toContain('sort')
213
- })
214
-
215
- test('missing required arg fails validation', async () => {
216
- const { output, exitCode } = await serve(createApp(), ['project', 'get'])
217
- expect(exitCode).toBe(1)
218
- expect(output).toContain('VALIDATION_ERROR')
219
- })
220
-
221
- test('missing required arg shows human error in TTY', async () => {
222
- ;(process.stdout as any).isTTY = true
223
- const { output, exitCode } = await serve(createApp(), ['project', 'get'])
224
- ;(process.stdout as any).isTTY = false
225
- expect(exitCode).toBe(1)
226
- expect(output).toContain('Error: missing required argument <id>')
227
- })
228
-
229
- test('unknown flag returns error', async () => {
230
- const { output, exitCode } = await serve(createApp(), ['ping', '--unknown-flag'])
231
- expect(exitCode).toBe(1)
232
- expect(output).toMatchInlineSnapshot(`
233
- "code: UNKNOWN
234
- message: "Unknown flag: --unknown-flag"
235
- "
236
- `)
237
- })
238
-
239
- test('unknown flag shows human error in TTY', async () => {
240
- ;(process.stdout as any).isTTY = true
241
- const { output, exitCode } = await serve(createApp(), ['ping', '--unknown-flag'])
242
- ;(process.stdout as any).isTTY = false
243
- expect(exitCode).toBe(1)
244
- expect(output).toMatchInlineSnapshot(`
245
- "Error: Unknown flag: --unknown-flag
246
- "
247
- `)
248
- })
249
- })
250
-
251
- describe('output formats', () => {
252
- test('default TOON format', async () => {
253
- const { output } = await serve(createApp(), ['ping'])
254
- expect(output).toMatchInlineSnapshot(`
255
- "pong: true
256
- "
257
- `)
258
- expect(() => json(output)).toThrow()
259
- })
260
-
261
- test('--format json', async () => {
262
- const { output } = await serve(createApp(), ['ping', '--format', 'json'])
263
- expect(output).toMatchInlineSnapshot(`
264
- "{
265
- "pong": true
266
- }
267
- "
268
- `)
269
- })
270
-
271
- test('--json shorthand', async () => {
272
- const { output } = await serve(createApp(), ['ping', '--json'])
273
- expect(output).toMatchInlineSnapshot(`
274
- "{
275
- "pong": true
276
- }
277
- "
278
- `)
279
- })
280
-
281
- test('--format yaml', async () => {
282
- const { output } = await serve(createApp(), ['ping', '--format', 'yaml'])
283
- expect(output).toMatchInlineSnapshot(`
284
- "pong: true
285
- "
286
- `)
287
- })
288
-
289
- test('CLI-level default format', async () => {
290
- const cli = Cli.create('test', { format: 'json' })
291
- cli.command('ping', { run: () => ({ pong: true }) })
292
- const { output } = await serve(cli, ['ping'])
293
- expect(output).toMatchInlineSnapshot(`
294
- "{
295
- "pong": true
296
- }
297
- "
298
- `)
299
- })
300
-
301
- test('command-level default format', async () => {
302
- const cli = Cli.create('test')
303
- cli.command('ping', { format: 'json', run: () => ({ pong: true }) })
304
- const { output } = await serve(cli, ['ping'])
305
- expect(output).toMatchInlineSnapshot(`
306
- "{
307
- "pong": true
308
- }
309
- "
310
- `)
311
- })
312
-
313
- test('command-level format overrides CLI-level', async () => {
314
- const cli = Cli.create('test', { format: 'yaml' })
315
- cli.command('ping', { format: 'json', run: () => ({ pong: true }) })
316
- const { output } = await serve(cli, ['ping'])
317
- expect(output).toMatchInlineSnapshot(`
318
- "{
319
- "pong": true
320
- }
321
- "
322
- `)
323
- })
324
-
325
- test('--format flag overrides command-level default', async () => {
326
- const cli = Cli.create('test')
327
- cli.command('ping', { format: 'json', run: () => ({ pong: true }) })
328
- const { output } = await serve(cli, ['ping', '--format', 'yaml'])
329
- expect(output).toMatchInlineSnapshot(`
330
- "pong: true
331
- "
332
- `)
333
- })
334
-
335
- test('--full-output full envelope', async () => {
336
- const { output } = await serve(createApp(), ['ping', '--full-output'])
337
- expect(output).toMatchInlineSnapshot(`
338
- "ok: true
339
- data:
340
- pong: true
341
- meta:
342
- command: ping
343
- duration: <stripped>
344
- "
345
- `)
346
- })
347
-
348
- test('--full-output --format json full envelope', async () => {
349
- const { output } = await serve(createApp(), ['ping', '--full-output', '--format', 'json'])
350
- expect(json(output)).toMatchInlineSnapshot(`
351
- {
352
- "data": {
353
- "pong": true,
354
- },
355
- "meta": {
356
- "command": "ping",
357
- "duration": "<stripped>",
358
- },
359
- "ok": true,
360
- }
361
- `)
362
- })
363
-
364
- test('nested command path in full-output meta', async () => {
365
- const { output } = await serve(createApp(), [
366
- 'project',
367
- 'deploy',
368
- 'status',
369
- 'd-1',
370
- '--full-output',
371
- '--format',
372
- 'json',
373
- ])
374
- expect(json(output)).toMatchInlineSnapshot(`
375
- {
376
- "data": {
377
- "deployId": "d-1",
378
- "progress": 75,
379
- "status": "running",
380
- },
381
- "meta": {
382
- "command": "project deploy status",
383
- "duration": "<stripped>",
384
- },
385
- "ok": true,
386
- }
387
- `)
388
- })
389
- })
390
-
391
- describe('undefined output', () => {
392
- test('void command produces no output in human mode', async () => {
393
- const { output, exitCode } = await serve(createApp(), ['noop'])
394
- expect(output).toBe('')
395
- expect(exitCode).toBeUndefined()
396
- })
397
-
398
- test('void command produces no output with --format json', async () => {
399
- const { output } = await serve(createApp(), ['noop', '--format', 'json'])
400
- expect(output).toBe('')
401
- })
402
-
403
- test('void command produces no output with --format yaml', async () => {
404
- const { output } = await serve(createApp(), ['noop', '--format', 'yaml'])
405
- expect(output).toBe('')
406
- })
407
-
408
- test('void command shows envelope with --full-output', async () => {
409
- const { output } = await serve(createApp(), ['noop', '--full-output', '--format', 'json'])
410
- expect(json(output)).toMatchInlineSnapshot(`
411
- {
412
- "meta": {
413
- "command": "noop",
414
- "duration": "<stripped>",
415
- },
416
- "ok": true,
417
- }
418
- `)
419
- })
420
- })
421
-
422
- describe('--token-limit and --token-offset', () => {
423
- test('--token-limit truncates output', async () => {
424
- const { output } = await serve(createApp(), ['ping', '--token-limit', '5'])
425
- expect(output).toMatchInlineSnapshot(`
426
- "pong: true
427
- "
428
- `)
429
- })
430
-
431
- test('--token-offset skips beginning of output', async () => {
432
- const { output } = await serve(createApp(), ['ping', '--token-offset', '6'])
433
- expect(output).toMatchInlineSnapshot(`
434
- "
435
- [truncated: showing tokens 6–3 of 3]
436
- "
437
- `)
438
- })
439
-
440
- test('--token-limit and --token-offset together for pagination', async () => {
441
- const { output } = await serve(createApp(), [
442
- 'ping',
443
- '--token-offset',
444
- '2',
445
- '--token-limit',
446
- '4',
447
- ])
448
- expect(output).toMatchInlineSnapshot(`
449
- " true
450
- [truncated: showing tokens 2–3 of 3]
451
- "
452
- `)
453
- })
454
-
455
- test('no truncation when output fits within limit', async () => {
456
- const { output } = await serve(createApp(), ['ping', '--token-limit', '1000'])
457
- expect(output).toMatchInlineSnapshot(`
458
- "pong: true
459
- "
460
- `)
461
- })
462
-
463
- test('works with --full-output', async () => {
464
- const { output } = await serve(createApp(), [
465
- 'ping',
466
- '--full-output',
467
- '--format',
468
- 'json',
469
- '--token-limit',
470
- '20',
471
- ])
472
- expect(output).toMatchInlineSnapshot(`
473
- "{
474
- "ok": true,
475
- "data": {
476
- "pong": true
477
- },
478
- "meta": {
479
- "command": "ping",
480
- "duration": "<stripped>"
481
- }
482
- }
483
- "
484
- `)
485
- })
486
-
487
- test('--full-output includes meta.nextOffset when truncated', async () => {
488
- const { output } = await serve(createApp(), [
489
- 'ping',
490
- '--full-output',
491
- '--format',
492
- 'json',
493
- '--token-limit',
494
- '2',
495
- ])
496
- expect(output).toContain('"nextOffset"')
497
- expect(output).toContain('[truncated:')
498
- })
499
-
500
- test('--full-output omits meta.nextOffset when not truncated', async () => {
501
- const { output } = await serve(createApp(), [
502
- 'ping',
503
- '--full-output',
504
- '--format',
505
- 'json',
506
- '--token-limit',
507
- '10000',
508
- ])
509
- const parsed = json(output)
510
- expect(parsed.meta.nextOffset).toBeUndefined()
511
- })
512
-
513
- test('--token-offset only', async () => {
514
- const { output } = await serve(createApp(), ['ping', '--format', 'json', '--token-offset', '5'])
515
- expect(output).toMatchInlineSnapshot(`
516
- "
517
- [truncated: showing tokens 5–5 of 5]
518
- "
519
- `)
520
- })
521
- })
522
-
523
- describe('--token-count', () => {
524
- test('outputs token count instead of data', async () => {
525
- const { output } = await serve(createApp(), ['ping', '--token-count'])
526
- expect(output.trim()).toBe('3')
527
- })
528
-
529
- test('works with --format json', async () => {
530
- const { output } = await serve(createApp(), ['ping', '--token-count', '--format', 'json'])
531
- expect(output.trim()).toBe('5')
532
- })
533
-
534
- test('works with --filter-output', async () => {
535
- const { output } = await serve(createApp(), [
536
- 'ping',
537
- '--filter-output',
538
- 'pong',
539
- '--token-count',
540
- ])
541
- expect(output.trim()).toBe('1')
542
- })
543
- })
544
-
545
- describe('error handling', () => {
546
- test('thrown Error shows structured error', async () => {
547
- const { output, exitCode } = await serve(createApp(), ['explode'])
548
- expect(exitCode).toBe(1)
549
- expect(output).toMatchInlineSnapshot(`
550
- "code: UNKNOWN
551
- message: kaboom
552
- "
553
- `)
554
- })
555
-
556
- test('thrown Error shows human error in TTY', async () => {
557
- ;(process.stdout as any).isTTY = true
558
- const { output, exitCode } = await serve(createApp(), ['explode'])
559
- ;(process.stdout as any).isTTY = false
560
- expect(exitCode).toBe(1)
561
- expect(output).toMatchInlineSnapshot(`
562
- "Error: kaboom
563
- "
564
- `)
565
- })
566
-
567
- test('IncurError preserves code and retryable', async () => {
568
- const { output, exitCode } = await serve(createApp(), ['explode-clac', '--format', 'json'])
569
- expect(exitCode).toBe(1)
570
- expect(json(output)).toMatchInlineSnapshot(`
571
- {
572
- "code": "QUOTA_EXCEEDED",
573
- "message": "Rate limit exceeded",
574
- "retryable": true,
575
- }
576
- `)
577
- })
578
-
579
- test('error() sentinel returns error envelope', async () => {
580
- const { output, exitCode } = await serve(createApp(), [
581
- 'auth',
582
- 'status',
583
- '--full-output',
584
- '--format',
585
- 'json',
586
- ])
587
- expect(exitCode).toBe(1)
588
- expect(json(output)).toMatchInlineSnapshot(`
589
- {
590
- "error": {
591
- "code": "NOT_AUTHENTICATED",
592
- "message": "Not logged in",
593
- "retryable": false,
594
- },
595
- "meta": {
596
- "command": "auth status",
597
- "cta": {
598
- "commands": [
599
- {
600
- "command": "app auth login",
601
- },
602
- ],
603
- "description": "Suggested command:",
604
- },
605
- "duration": "<stripped>",
606
- },
607
- "ok": false,
608
- }
609
- `)
610
- })
611
-
612
- test('IncurError in nested command', async () => {
613
- const { output, exitCode } = await serve(createApp(), [
614
- 'project',
615
- 'delete',
616
- 'p1',
617
- '--format',
618
- 'json',
619
- ])
620
- expect(exitCode).toBe(1)
621
- expect(json(output)).toMatchInlineSnapshot(`
622
- {
623
- "code": "CONFIRMATION_REQUIRED",
624
- "message": "Use --force to delete project p1",
625
- "retryable": true,
626
- }
627
- `)
628
- })
629
-
630
- test('validation error includes field errors', async () => {
631
- const { output, exitCode } = await serve(createApp(), ['validate-fail', '--format', 'json'])
632
- expect(exitCode).toBe(1)
633
- const parsed = json(output)
634
- expect(parsed.fieldErrors.length).toBeGreaterThan(0)
635
- expect(parsed.fieldErrors[0].path).toBe('email')
636
- })
637
-
638
- test('command not found returns error envelope', async () => {
639
- const { output, exitCode } = await serve(createApp(), [
640
- 'nonexistent',
641
- '--full-output',
642
- '--format',
643
- 'json',
644
- ])
645
- expect(exitCode).toBe(1)
646
- expect(json(output)).toMatchInlineSnapshot(`
647
- {
648
- "error": {
649
- "code": "COMMAND_NOT_FOUND",
650
- "message": "'nonexistent' is not a command for 'app'.",
651
- },
652
- "meta": {
653
- "command": "nonexistent",
654
- "cta": {
655
- "commands": [
656
- {
657
- "command": "app --help",
658
- "description": "see all available commands",
659
- },
660
- ],
661
- "description": "Suggested command:",
662
- },
663
- "duration": "<stripped>",
664
- },
665
- "ok": false,
666
- }
667
- `)
668
- })
669
-
670
- test('error envelope respects --format json', async () => {
671
- const { output, exitCode } = await serve(createApp(), ['explode', '--format', 'json'])
672
- expect(exitCode).toBe(1)
673
- expect(json(output)).toMatchInlineSnapshot(`
674
- {
675
- "code": "UNKNOWN",
676
- "message": "kaboom",
677
- }
678
- `)
679
- })
680
- })
681
-
682
- describe('cta', () => {
683
- test('ok() with string CTAs', async () => {
684
- const { output } = await serve(createApp(), [
685
- 'auth',
686
- 'login',
687
- '--full-output',
688
- '--format',
689
- 'json',
690
- ])
691
- expect(json(output).meta.cta).toMatchInlineSnapshot(`
692
- {
693
- "commands": [
694
- {
695
- "command": "app auth status",
696
- },
697
- ],
698
- "description": "Verify your session:",
699
- }
700
- `)
701
- })
702
-
703
- test('ok() with object CTAs including descriptions', async () => {
704
- const { output } = await serve(createApp(), [
705
- 'project',
706
- 'create',
707
- 'MyProject',
708
- '--full-output',
709
- '--format',
710
- 'json',
711
- ])
712
- expect(json(output).meta.cta).toMatchInlineSnapshot(`
713
- {
714
- "commands": [
715
- {
716
- "command": "app project get p-new",
717
- "description": "View "MyProject"",
718
- },
719
- {
720
- "command": "app project list",
721
- },
722
- ],
723
- "description": "Suggested commands:",
724
- }
725
- `)
726
- })
727
-
728
- test('error() with CTA', async () => {
729
- const { output } = await serve(createApp(), [
730
- 'auth',
731
- 'status',
732
- '--full-output',
733
- '--format',
734
- 'json',
735
- ])
736
- expect(json(output).meta.cta).toMatchInlineSnapshot(`
737
- {
738
- "commands": [
739
- {
740
- "command": "app auth login",
741
- },
742
- ],
743
- "description": "Suggested command:",
744
- }
745
- `)
746
- })
747
-
748
- test('plain return omits CTA', async () => {
749
- const { output } = await serve(createApp(), ['ping', '--full-output', '--format', 'json'])
750
- expect(json(output).meta.cta).toBeUndefined()
751
- })
752
-
753
- test('dynamic CTA list from data', async () => {
754
- const { output } = await serve(createApp(), [
755
- 'project',
756
- 'list',
757
- '--archived',
758
- '--full-output',
759
- '--format',
760
- 'json',
761
- ])
762
- expect(json(output).meta.cta).toMatchInlineSnapshot(`
763
- {
764
- "commands": [
765
- {
766
- "command": "app project get p1",
767
- "description": "View "Alpha"",
768
- },
769
- {
770
- "command": "app project get p2",
771
- "description": "View "Beta"",
772
- },
773
- ],
774
- "description": "Suggested commands:",
775
- }
776
- `)
777
- })
778
- })
779
-
780
- describe('async', () => {
781
- test('async handler resolves', async () => {
782
- const { output } = await serve(createApp(), ['slow'])
783
- expect(output).toMatchInlineSnapshot(`
784
- "done: true
785
- "
786
- `)
787
- })
788
- })
789
-
790
- describe('streaming', () => {
791
- test('default streams toon per chunk (human)', async () => {
792
- const { output } = await serve(createApp(), ['stream'])
793
- expect(output).toMatchInlineSnapshot(`
794
- "content: hello
795
- content: world
796
- "
797
- `)
798
- })
799
-
800
- test('default streams toon per chunk (--full-output)', async () => {
801
- const { output } = await serve(createApp(), ['stream', '--full-output'])
802
- expect(output).toMatchInlineSnapshot(`
803
- "content: hello
804
- content: world
805
- "
806
- `)
807
- })
808
-
809
- test('--format json buffers all chunks', async () => {
810
- const { output } = await serve(createApp(), ['stream', '--format', 'json'])
811
- expect(json(output)).toMatchInlineSnapshot(`
812
- [
813
- {
814
- "content": "hello",
815
- },
816
- {
817
- "content": "world",
818
- },
819
- ]
820
- `)
821
- })
822
-
823
- test('--format json --full-output buffers with envelope', async () => {
824
- const { output } = await serve(createApp(), ['stream', '--full-output', '--format', 'json'])
825
- expect(json(output)).toMatchInlineSnapshot(`
826
- {
827
- "data": [
828
- {
829
- "content": "hello",
830
- },
831
- {
832
- "content": "world",
833
- },
834
- ],
835
- "meta": {
836
- "command": "stream",
837
- "duration": "<stripped>",
838
- },
839
- "ok": true,
840
- }
841
- `)
842
- })
843
-
844
- test('plain text streams as lines', async () => {
845
- const { output } = await serve(createApp(), ['stream-text'])
846
- expect(output).toMatchInlineSnapshot(`
847
- "hello
848
- world
849
- "
850
- `)
851
- })
852
-
853
- test('plain text streams as jsonl chunks', async () => {
854
- const { output } = await serve(createApp(), ['stream-text', '--format', 'jsonl'])
855
- const lines = output
856
- .trim()
857
- .split('\n')
858
- .map((l) => JSON.parse(l))
859
- expect(lines[0]).toEqual({ type: 'chunk', data: 'hello' })
860
- expect(lines[1]).toEqual({ type: 'chunk', data: 'world' })
861
- expect(lines[2].type).toBe('done')
862
- })
863
-
864
- test('--format jsonl explicit', async () => {
865
- const { output } = await serve(createApp(), ['stream', '--format', 'jsonl'])
866
- const lines = output
867
- .trim()
868
- .split('\n')
869
- .map((l) => JSON.parse(l))
870
- expect(lines[0]).toEqual({ type: 'chunk', data: { content: 'hello' } })
871
- expect(lines[1]).toEqual({ type: 'chunk', data: { content: 'world' } })
872
- expect(lines[2].type).toBe('done')
873
- })
874
-
875
- test('ok() CTA in jsonl done record', async () => {
876
- const { output } = await serve(createApp(), ['stream-ok', '--format', 'jsonl'])
877
- const lines = output
878
- .trim()
879
- .split('\n')
880
- .map((l) => JSON.parse(l))
881
- const done = lines.find((l: any) => l.type === 'done')
882
- expect(done.meta.cta).toMatchInlineSnapshot(`
883
- {
884
- "commands": [
885
- {
886
- "command": "app ping",
887
- },
888
- ],
889
- "description": "Suggested command:",
890
- }
891
- `)
892
- })
893
-
894
- test('ok() CTA shows after toon stream', async () => {
895
- const { output } = await serve(createApp(), ['stream-ok'])
896
- expect(output).toContain('n: 1')
897
- expect(output).toContain('n: 2')
898
- expect(output).toContain('Suggested command:')
899
- expect(output).toContain('app ping')
900
- })
901
-
902
- test('error() mid-stream in jsonl', async () => {
903
- const { output, exitCode } = await serve(createApp(), ['stream-error', '--format', 'jsonl'])
904
- const lines = output
905
- .trim()
906
- .split('\n')
907
- .map((l) => JSON.parse(l))
908
- expect(lines[0]).toEqual({ type: 'chunk', data: { n: 1 } })
909
- expect(lines[1]).toMatchInlineSnapshot(`
910
- {
911
- "error": {
912
- "code": "STREAM_FAIL",
913
- "message": "broke mid-stream",
914
- },
915
- "ok": false,
916
- "type": "error",
917
- }
918
- `)
919
- expect(exitCode).toBe(1)
920
- })
921
-
922
- test('error() mid-stream in toon', async () => {
923
- const { output, exitCode } = await serve(createApp(), ['stream-error'])
924
- expect(output).toContain('n: 1')
925
- expect(output).toContain('Error (STREAM_FAIL): broke mid-stream')
926
- expect(exitCode).toBe(1)
927
- })
928
-
929
- test('thrown error mid-stream in jsonl', async () => {
930
- const { output, exitCode } = await serve(createApp(), ['stream-throw', '--format', 'jsonl'])
931
- const lines = output
932
- .trim()
933
- .split('\n')
934
- .map((l) => JSON.parse(l))
935
- expect(lines[0]).toEqual({ type: 'chunk', data: { n: 1 } })
936
- expect(lines[1]).toMatchInlineSnapshot(`
937
- {
938
- "error": {
939
- "code": "UNKNOWN",
940
- "message": "stream kaboom",
941
- },
942
- "ok": false,
943
- "type": "error",
944
- }
945
- `)
946
- expect(exitCode).toBe(1)
947
- })
948
-
949
- test('thrown error mid-stream in toon', async () => {
950
- const { output, exitCode } = await serve(createApp(), ['stream-throw'])
951
- expect(output).toContain('n: 1')
952
- expect(output).toContain('Error: stream kaboom')
953
- expect(exitCode).toBe(1)
954
- })
955
- })
956
-
957
- describe('help', () => {
958
- test('root help (no args)', async () => {
959
- const { output, exitCode } = await serve(createApp(), [])
960
- expect(exitCode).toBeUndefined()
961
- expect(output).toMatchInlineSnapshot(`
962
- "app@3.5.0 — A comprehensive CLI application for testing.
963
-
964
- Usage: app <command>
965
-
966
- Commands:
967
- api Proxy to HTTP API
968
- auth Authentication commands
969
- config Show current configuration
970
- echo Echo back arguments
971
- explode Always fails
972
- explode-clac Fails with IncurError
973
- noop Returns nothing
974
- ping Health check
975
- project Manage projects
976
- slow Async command
977
- stream Stream chunks
978
- stream-error Stream with mid-stream error
979
- stream-ok Stream with ok() return
980
- stream-text Stream plain text
981
- stream-throw Stream that throws
982
- validate-fail Fails validation
983
-
984
- Integrations:
985
- completions Generate shell completion script
986
- mcp add Register as MCP server
987
- skills Sync skill files to agents (add, list)
988
-
989
- Global Options:
990
- --filter-output <keys> Filter output by key paths (e.g. foo,bar.baz,a[0,3])
991
- --format <toon|json|yaml|md|jsonl> Output format
992
- --full-output Show full output envelope
993
- --help Show help
994
- --llms, --llms-full Print LLM-readable manifest
995
- --mcp Start as MCP stdio server
996
- --schema Show JSON Schema for command
997
- --token-count Print token count of output (instead of output)
998
- --token-limit <n> Limit output to n tokens
999
- --token-offset <n> Skip first n tokens of output
1000
- --version Show version
1001
- "
1002
- `)
1003
- })
1004
-
1005
- test('--help on root', async () => {
1006
- const { output } = await serve(createApp(), ['--help'])
1007
- expect(output).toContain('Usage: app <command>')
1008
- })
1009
-
1010
- test('group help (no subcommand)', async () => {
1011
- const { output, exitCode } = await serve(createApp(), ['auth'])
1012
- expect(exitCode).toBeUndefined()
1013
- expect(output).toMatchInlineSnapshot(`
1014
- "app auth — Authentication commands
1015
-
1016
- Usage: app auth <command>
1017
-
1018
- Commands:
1019
- login Log in to the service
1020
- logout Log out of the service
1021
- status Show authentication status
1022
-
1023
- Global Options:
1024
- --filter-output <keys> Filter output by key paths (e.g. foo,bar.baz,a[0,3])
1025
- --format <toon|json|yaml|md|jsonl> Output format
1026
- --full-output Show full output envelope
1027
- --help Show help
1028
- --llms, --llms-full Print LLM-readable manifest
1029
- --schema Show JSON Schema for command
1030
- --token-count Print token count of output (instead of output)
1031
- --token-limit <n> Limit output to n tokens
1032
- --token-offset <n> Skip first n tokens of output
1033
- "
1034
- `)
1035
- })
1036
-
1037
- test('nested group help', async () => {
1038
- const { output, exitCode } = await serve(createApp(), ['project', 'deploy'])
1039
- expect(exitCode).toBeUndefined()
1040
- expect(output).toMatchInlineSnapshot(`
1041
- "app project deploy — Deployment commands
1042
-
1043
- Usage: app project deploy <command>
1044
-
1045
- Commands:
1046
- create Create a deployment
1047
- rollback Rollback a deployment
1048
- status Check deployment status
1049
-
1050
- Global Options:
1051
- --filter-output <keys> Filter output by key paths (e.g. foo,bar.baz,a[0,3])
1052
- --format <toon|json|yaml|md|jsonl> Output format
1053
- --full-output Show full output envelope
1054
- --help Show help
1055
- --llms, --llms-full Print LLM-readable manifest
1056
- --schema Show JSON Schema for command
1057
- --token-count Print token count of output (instead of output)
1058
- --token-limit <n> Limit output to n tokens
1059
- --token-offset <n> Skip first n tokens of output
1060
- "
1061
- `)
1062
- })
1063
-
1064
- test('--help on leaf command', async () => {
1065
- const { output } = await serve(createApp(), ['project', 'list', '--help'])
1066
- expect(output).toMatchInlineSnapshot(`
1067
- "app project list — List projects
1068
-
1069
- Usage: app project list [options]
1070
-
1071
- Options:
1072
- --limit, -l <number> Max results (default: 20)
1073
- --sort, -s <name|created|updated> Sort field (default: name)
1074
- --archived Include archived
1075
-
1076
- Global Options:
1077
- --filter-output <keys> Filter output by key paths (e.g. foo,bar.baz,a[0,3])
1078
- --format <toon|json|yaml|md|jsonl> Output format
1079
- --full-output Show full output envelope
1080
- --help Show help
1081
- --llms, --llms-full Print LLM-readable manifest
1082
- --schema Show JSON Schema for command
1083
- --token-count Print token count of output (instead of output)
1084
- --token-limit <n> Limit output to n tokens
1085
- --token-offset <n> Skip first n tokens of output
1086
- "
1087
- `)
1088
- })
1089
-
1090
- test('--help includes examples', async () => {
1091
- const { output } = await serve(createApp(), ['project', 'deploy', 'create', '--help'])
1092
- expect(output).toMatchInlineSnapshot(`
1093
- "app project deploy create — Create a deployment
1094
-
1095
- Usage: app project deploy create <env> [options]
1096
-
1097
- Arguments:
1098
- env Target environment
1099
-
1100
- Options:
1101
- --branch, -b <string> Branch to deploy (default: main)
1102
- --dry-run Dry run mode
1103
-
1104
- Examples:
1105
- app project deploy create staging # Deploy staging from main
1106
- app project deploy create production --branch release --dryRun true # Dry run a production deploy
1107
-
1108
- Global Options:
1109
- --filter-output <keys> Filter output by key paths (e.g. foo,bar.baz,a[0,3])
1110
- --format <toon|json|yaml|md|jsonl> Output format
1111
- --full-output Show full output envelope
1112
- --help Show help
1113
- --llms, --llms-full Print LLM-readable manifest
1114
- --schema Show JSON Schema for command
1115
- --token-count Print token count of output (instead of output)
1116
- --token-limit <n> Limit output to n tokens
1117
- --token-offset <n> Skip first n tokens of output
1118
- "
1119
- `)
1120
- })
1121
-
1122
- test('--help on group shows group help', async () => {
1123
- const { output } = await serve(createApp(), ['project', '--help'])
1124
- expect(output).toContain('app project')
1125
- expect(output).toContain('deploy')
1126
- expect(output).toContain('list')
1127
- })
1128
-
1129
- test('--version', async () => {
1130
- const { output } = await serve(createApp(), ['--version'])
1131
- expect(output).toMatchInlineSnapshot(`
1132
- "3.5.0
1133
- "
1134
- `)
1135
- })
1136
-
1137
- test('--help takes precedence over --version', async () => {
1138
- const { output } = await serve(createApp(), ['--help', '--version'])
1139
- expect(output).toContain('Usage: app <command>')
1140
- expect(output).toContain('app@3.5.0')
1141
- })
1142
- })
1143
-
1144
- describe('--llms-full', () => {
1145
- test('json manifest lists all leaf commands sorted', async () => {
1146
- const { output } = await serve(createApp(), ['--llms-full', '--format', 'json'])
1147
- const manifest = json(output)
1148
- expect(manifest.version).toBe('incur.v1')
1149
- const names = manifest.commands.map((c: any) => c.name)
1150
- expect(names).toMatchInlineSnapshot(`
1151
- [
1152
- "api",
1153
- "auth login",
1154
- "auth logout",
1155
- "auth status",
1156
- "config",
1157
- "echo",
1158
- "explode",
1159
- "explode-clac",
1160
- "noop",
1161
- "ping",
1162
- "project create",
1163
- "project delete",
1164
- "project deploy create",
1165
- "project deploy rollback",
1166
- "project deploy status",
1167
- "project get",
1168
- "project list",
1169
- "slow",
1170
- "stream",
1171
- "stream-error",
1172
- "stream-ok",
1173
- "stream-text",
1174
- "stream-throw",
1175
- "validate-fail",
1176
- ]
1177
- `)
1178
- })
1179
-
1180
- test('manifest includes schema.args and schema.options separately', async () => {
1181
- const { output } = await serve(createApp(), ['--llms-full', '--format', 'json'])
1182
- const projectList = json(output).commands.find((c: any) => c.name === 'project list')
1183
- expect(projectList.schema.options.properties).toMatchInlineSnapshot(`
1184
- {
1185
- "archived": {
1186
- "default": false,
1187
- "description": "Include archived",
1188
- "type": "boolean",
1189
- },
1190
- "limit": {
1191
- "default": 20,
1192
- "description": "Max results",
1193
- "type": "number",
1194
- },
1195
- "sort": {
1196
- "default": "name",
1197
- "description": "Sort field",
1198
- "enum": [
1199
- "name",
1200
- "created",
1201
- "updated",
1202
- ],
1203
- "type": "string",
1204
- },
1205
- }
1206
- `)
1207
- expect(projectList.schema.args).toBeUndefined()
1208
- })
1209
-
1210
- test('manifest includes schema.output', async () => {
1211
- const { output } = await serve(createApp(), ['--llms-full', '--format', 'json'])
1212
- const projectGet = json(output).commands.find((c: any) => c.name === 'project get')
1213
- expect(projectGet.schema.output).toMatchInlineSnapshot(`
1214
- {
1215
- "additionalProperties": false,
1216
- "properties": {
1217
- "description": {
1218
- "type": "string",
1219
- },
1220
- "id": {
1221
- "type": "string",
1222
- },
1223
- "members": {
1224
- "items": {
1225
- "additionalProperties": false,
1226
- "properties": {
1227
- "role": {
1228
- "type": "string",
1229
- },
1230
- "userId": {
1231
- "type": "string",
1232
- },
1233
- },
1234
- "required": [
1235
- "userId",
1236
- "role",
1237
- ],
1238
- "type": "object",
1239
- },
1240
- "type": "array",
1241
- },
1242
- "name": {
1243
- "type": "string",
1244
- },
1245
- },
1246
- "required": [
1247
- "id",
1248
- "name",
1249
- "description",
1250
- "members",
1251
- ],
1252
- "type": "object",
1253
- }
1254
- `)
1255
- })
1256
-
1257
- test('manifest omits schema when no schemas defined', async () => {
1258
- const { output } = await serve(createApp(), ['--llms-full', '--format', 'json'])
1259
- const ping = json(output).commands.find((c: any) => c.name === 'ping')
1260
- expect(ping.schema).toBeUndefined()
1261
- })
1262
-
1263
- test('scoped --llms-full to group', async () => {
1264
- const { output } = await serve(createApp(), ['auth', '--llms-full', '--format', 'json'])
1265
- const names = json(output).commands.map((c: any) => c.name)
1266
- expect(names).toMatchInlineSnapshot(`
1267
- [
1268
- "auth login",
1269
- "auth logout",
1270
- "auth status",
1271
- ]
1272
- `)
1273
- })
1274
-
1275
- test('scoped --llms-full to nested group', async () => {
1276
- const { output } = await serve(createApp(), [
1277
- 'project',
1278
- 'deploy',
1279
- '--llms-full',
1280
- '--format',
1281
- 'json',
1282
- ])
1283
- const names = json(output).commands.map((c: any) => c.name)
1284
- expect(names).toMatchInlineSnapshot(`
1285
- [
1286
- "project deploy create",
1287
- "project deploy rollback",
1288
- "project deploy status",
1289
- ]
1290
- `)
1291
- })
1292
-
1293
- test('default --llms-full outputs markdown', async () => {
1294
- const { output } = await serve(createApp(), ['--llms-full'])
1295
- expect(output).toContain('# app')
1296
- expect(output).toContain('auth login')
1297
- expect(output).toContain('project list')
1298
- })
1299
-
1300
- test('--llms-full markdown includes argument tables', async () => {
1301
- const { output } = await serve(createApp(), ['project', '--llms-full'])
1302
- expect(output).toContain('Arguments')
1303
- expect(output).toContain('`id`')
1304
- })
1305
-
1306
- test('--llms-full markdown includes options tables', async () => {
1307
- const { output } = await serve(createApp(), ['project', '--llms-full'])
1308
- expect(output).toContain('Options')
1309
- expect(output).toContain('`--limit`')
1310
- })
1311
-
1312
- test('--llms-full json includes examples on commands', async () => {
1313
- const { output } = await serve(createApp(), [
1314
- 'project',
1315
- 'deploy',
1316
- '--llms-full',
1317
- '--format',
1318
- 'json',
1319
- ])
1320
- const deployCreate = json(output).commands.find((c: any) => c.name === 'project deploy create')
1321
- expect(deployCreate.examples).toMatchInlineSnapshot(`
1322
- [
1323
- {
1324
- "command": "project deploy create staging",
1325
- "description": "Deploy staging from main",
1326
- },
1327
- {
1328
- "command": "project deploy create production --branch release --dryRun true",
1329
- "description": "Dry run a production deploy",
1330
- },
1331
- ]
1332
- `)
1333
- })
1334
-
1335
- test('--llms-full json omits examples when not defined', async () => {
1336
- const { output } = await serve(createApp(), ['--llms-full', '--format', 'json'])
1337
- const ping = json(output).commands.find((c: any) => c.name === 'ping')
1338
- expect(ping.examples).toBeUndefined()
1339
- })
1340
-
1341
- test('--llms-full markdown includes examples section', async () => {
1342
- const { output } = await serve(createApp(), ['--llms-full'])
1343
- expect(output).toContain('Examples')
1344
- expect(output).toContain('Deploy staging from main')
1345
- expect(output).toContain('app project deploy create staging')
1346
- })
1347
-
1348
- test('--llms-full markdown includes output tables', async () => {
1349
- const { output } = await serve(createApp(), ['project', '--llms-full'])
1350
- expect(output).toContain('Output')
1351
- })
1352
-
1353
- test('--llms-full --format yaml', async () => {
1354
- const { output } = await serve(createApp(), ['--llms-full', '--format', 'yaml'])
1355
- expect(output).toContain('version: incur.v1')
1356
- })
1357
- })
1358
-
1359
- describe('--llms', () => {
1360
- test('outputs compact markdown table with all commands', async () => {
1361
- const { output } = await serve(createApp(), ['--llms'])
1362
- expect(output).toMatchInlineSnapshot(`
1363
- "# app
1364
-
1365
- A comprehensive CLI application for testing.
1366
-
1367
- | Command | Description |
1368
- |---------|-------------|
1369
- | \`app api\` | Proxy to HTTP API |
1370
- | \`app auth login\` | Log in to the service |
1371
- | \`app auth logout\` | Log out of the service |
1372
- | \`app auth status\` | Show authentication status |
1373
- | \`app config [key]\` | Show current configuration |
1374
- | \`app echo <message> [repeat]\` | Echo back arguments |
1375
- | \`app explode\` | Always fails |
1376
- | \`app explode-clac\` | Fails with IncurError |
1377
- | \`app noop\` | Returns nothing |
1378
- | \`app ping\` | Health check |
1379
- | \`app project create <name>\` | Create a new project |
1380
- | \`app project delete <id>\` | Delete a project |
1381
- | \`app project deploy create <env>\` | Create a deployment |
1382
- | \`app project deploy rollback <deployId>\` | Rollback a deployment |
1383
- | \`app project deploy status <deployId>\` | Check deployment status |
1384
- | \`app project get <id>\` | Get a project by ID |
1385
- | \`app project list\` | List projects |
1386
- | \`app slow\` | Async command |
1387
- | \`app stream\` | Stream chunks |
1388
- | \`app stream-error\` | Stream with mid-stream error |
1389
- | \`app stream-ok\` | Stream with ok() return |
1390
- | \`app stream-text\` | Stream plain text |
1391
- | \`app stream-throw\` | Stream that throws |
1392
- | \`app validate-fail <email> <age>\` | Fails validation |
1393
-
1394
- Run \`app --llms-full\` for full manifest. Run \`app <command> --schema\` for argument details.
1395
- "
1396
- `)
1397
- })
1398
-
1399
- test('json manifest has name + description only, no schema/examples', async () => {
1400
- const { output } = await serve(createApp(), ['--llms', '--format', 'json'])
1401
- expect(json(output)).toMatchInlineSnapshot(`
1402
- {
1403
- "commands": [
1404
- {
1405
- "description": "Proxy to HTTP API",
1406
- "name": "api",
1407
- },
1408
- {
1409
- "description": "Log in to the service",
1410
- "name": "auth login",
1411
- },
1412
- {
1413
- "description": "Log out of the service",
1414
- "name": "auth logout",
1415
- },
1416
- {
1417
- "description": "Show authentication status",
1418
- "name": "auth status",
1419
- },
1420
- {
1421
- "description": "Show current configuration",
1422
- "name": "config",
1423
- },
1424
- {
1425
- "description": "Echo back arguments",
1426
- "name": "echo",
1427
- },
1428
- {
1429
- "description": "Always fails",
1430
- "name": "explode",
1431
- },
1432
- {
1433
- "description": "Fails with IncurError",
1434
- "name": "explode-clac",
1435
- },
1436
- {
1437
- "description": "Returns nothing",
1438
- "name": "noop",
1439
- },
1440
- {
1441
- "description": "Health check",
1442
- "name": "ping",
1443
- },
1444
- {
1445
- "description": "Create a new project",
1446
- "name": "project create",
1447
- },
1448
- {
1449
- "description": "Delete a project",
1450
- "name": "project delete",
1451
- },
1452
- {
1453
- "description": "Create a deployment",
1454
- "name": "project deploy create",
1455
- },
1456
- {
1457
- "description": "Rollback a deployment",
1458
- "name": "project deploy rollback",
1459
- },
1460
- {
1461
- "description": "Check deployment status",
1462
- "name": "project deploy status",
1463
- },
1464
- {
1465
- "description": "Get a project by ID",
1466
- "name": "project get",
1467
- },
1468
- {
1469
- "description": "List projects",
1470
- "name": "project list",
1471
- },
1472
- {
1473
- "description": "Async command",
1474
- "name": "slow",
1475
- },
1476
- {
1477
- "description": "Stream chunks",
1478
- "name": "stream",
1479
- },
1480
- {
1481
- "description": "Stream with mid-stream error",
1482
- "name": "stream-error",
1483
- },
1484
- {
1485
- "description": "Stream with ok() return",
1486
- "name": "stream-ok",
1487
- },
1488
- {
1489
- "description": "Stream plain text",
1490
- "name": "stream-text",
1491
- },
1492
- {
1493
- "description": "Stream that throws",
1494
- "name": "stream-throw",
1495
- },
1496
- {
1497
- "description": "Fails validation",
1498
- "name": "validate-fail",
1499
- },
1500
- ],
1501
- "version": "incur.v1",
1502
- }
1503
- `)
1504
- })
1505
-
1506
- test('scoped to group', async () => {
1507
- const { output } = await serve(createApp(), ['auth', '--llms'])
1508
- expect(output).toMatchInlineSnapshot(`
1509
- "# app auth
1510
-
1511
- Authentication commands
1512
-
1513
- | Command | Description |
1514
- |---------|-------------|
1515
- | \`app auth auth login\` | Log in to the service |
1516
- | \`app auth auth logout\` | Log out of the service |
1517
- | \`app auth auth status\` | Show authentication status |
1518
-
1519
- Run \`app auth --llms-full\` for full manifest. Run \`app auth <command> --schema\` for argument details.
1520
- "
1521
- `)
1522
- })
1523
-
1524
- test('scoped to nested group', async () => {
1525
- const { output } = await serve(createApp(), ['project', 'deploy', '--llms'])
1526
- expect(output).toMatchInlineSnapshot(`
1527
- "# app project deploy
1528
-
1529
- Deployment commands
1530
-
1531
- | Command | Description |
1532
- |---------|-------------|
1533
- | \`app project deploy project deploy create <env>\` | Create a deployment |
1534
- | \`app project deploy project deploy rollback <deployId>\` | Rollback a deployment |
1535
- | \`app project deploy project deploy status <deployId>\` | Check deployment status |
1536
-
1537
- Run \`app project deploy --llms-full\` for full manifest. Run \`app project deploy <command> --schema\` for argument details.
1538
- "
1539
- `)
1540
- })
1541
-
1542
- test('--llms --format yaml', async () => {
1543
- const { output } = await serve(createApp(), ['--llms', '--format', 'yaml'])
1544
- expect(output).toMatchInlineSnapshot(`
1545
- "version: incur.v1
1546
- commands:
1547
- - name: api
1548
- description: Proxy to HTTP API
1549
- - name: auth login
1550
- description: Log in to the service
1551
- - name: auth logout
1552
- description: Log out of the service
1553
- - name: auth status
1554
- description: Show authentication status
1555
- - name: config
1556
- description: Show current configuration
1557
- - name: echo
1558
- description: Echo back arguments
1559
- - name: explode
1560
- description: Always fails
1561
- - name: explode-clac
1562
- description: Fails with IncurError
1563
- - name: noop
1564
- description: Returns nothing
1565
- - name: ping
1566
- description: Health check
1567
- - name: project create
1568
- description: Create a new project
1569
- - name: project delete
1570
- description: Delete a project
1571
- - name: project deploy create
1572
- description: Create a deployment
1573
- - name: project deploy rollback
1574
- description: Rollback a deployment
1575
- - name: project deploy status
1576
- description: Check deployment status
1577
- - name: project get
1578
- description: Get a project by ID
1579
- - name: project list
1580
- description: List projects
1581
- - name: slow
1582
- description: Async command
1583
- - name: stream
1584
- description: Stream chunks
1585
- - name: stream-error
1586
- description: Stream with mid-stream error
1587
- - name: stream-ok
1588
- description: Stream with ok() return
1589
- - name: stream-text
1590
- description: Stream plain text
1591
- - name: stream-throw
1592
- description: Stream that throws
1593
- - name: validate-fail
1594
- description: Fails validation
1595
- "
1596
- `)
1597
- })
1598
- })
1599
-
1600
- describe('typegen', () => {
1601
- test('generates correct .d.ts for entire CLI', () => {
1602
- expect(Typegen.fromCli(createApp())).toMatchInlineSnapshot(`
1603
- "declare module 'incur' {
1604
- interface Register {
1605
- commands: {
1606
- 'api': { args: {}; options: {} }
1607
- 'auth login': { args: {}; options: { hostname: string; web: boolean; scopes: string[] } }
1608
- 'auth logout': { args: {}; options: {} }
1609
- 'auth status': { args: {}; options: {} }
1610
- 'config': { args: { key?: string }; options: {} }
1611
- 'echo': { args: { message: string; repeat?: number }; options: { upper: boolean; prefix: string } }
1612
- 'explode': { args: {}; options: {} }
1613
- 'explode-clac': { args: {}; options: {} }
1614
- 'noop': { args: {}; options: {} }
1615
- 'ping': { args: {}; options: {} }
1616
- 'project create': { args: { name: string }; options: { description: string; private: boolean } }
1617
- 'project delete': { args: { id: string }; options: { force: boolean } }
1618
- 'project deploy create': { args: { env: string }; options: { branch: string; dryRun: boolean } }
1619
- 'project deploy rollback': { args: { deployId: string }; options: {} }
1620
- 'project deploy status': { args: { deployId: string }; options: {} }
1621
- 'project get': { args: { id: string }; options: {} }
1622
- 'project list': { args: {}; options: { limit: number; sort: "name" | "created" | "updated"; archived: boolean } }
1623
- 'slow': { args: {}; options: {} }
1624
- 'stream': { args: {}; options: {} }
1625
- 'stream-error': { args: {}; options: {} }
1626
- 'stream-ok': { args: {}; options: {} }
1627
- 'stream-text': { args: {}; options: {} }
1628
- 'stream-throw': { args: {}; options: {} }
1629
- 'validate-fail': { args: { email: string; age: number }; options: {} }
1630
- }
1631
- }
1632
- }
1633
- "
1634
- `)
1635
- })
1636
- })
1637
-
1638
- describe('composition', () => {
1639
- test('multiple groups on same parent', async () => {
1640
- const cli = createApp()
1641
- const { output: o1 } = await serve(cli, ['auth', 'logout'])
1642
- expect(o1).toMatchInlineSnapshot(`
1643
- "loggedOut: true
1644
- "
1645
- `)
1646
- const { output: o2 } = await serve(cli, ['project', 'list', '--format', 'json'])
1647
- expect(json(o2).items).toBeDefined()
1648
- const { output: o3 } = await serve(cli, ['ping'])
1649
- expect(o3).toMatchInlineSnapshot(`
1650
- "pong: true
1651
- "
1652
- `)
1653
- })
1654
-
1655
- test('deeply nested deploy commands work alongside siblings', async () => {
1656
- const cli = createApp()
1657
- const { output: o1 } = await serve(cli, ['project', 'deploy', 'create', 'staging'])
1658
- expect(o1).toMatchInlineSnapshot(`
1659
- "deployId: d-123
1660
- url: "https://staging.example.com"
1661
- status: pending
1662
- "
1663
- `)
1664
- const { output: o2 } = await serve(cli, ['project', 'list', '--format', 'json'])
1665
- expect(json(o2).items).toBeDefined()
1666
- })
1667
-
1668
- test('leaf CLI mounted alongside groups', async () => {
1669
- const cli = createApp()
1670
- const { output: o1 } = await serve(cli, ['config'])
1671
- expect(o1).toMatchInlineSnapshot(`
1672
- "apiUrl: "https://api.example.com"
1673
- timeout: 30
1674
- debug: false
1675
- "
1676
- `)
1677
- const { output: o2 } = await serve(cli, ['auth', 'logout'])
1678
- expect(o2).toMatchInlineSnapshot(`
1679
- "loggedOut: true
1680
- "
1681
- `)
1682
- })
1683
-
1684
- test('create with single options object', async () => {
1685
- const cli = Cli.create({
1686
- name: 'one-shot',
1687
- description: 'Single object form',
1688
- run: () => ({ result: 42 }),
1689
- })
1690
- expect(cli.name).toBe('one-shot')
1691
- const { output } = await serve(cli, [])
1692
- expect(output).toMatchInlineSnapshot(`
1693
- "result: 42
1694
- "
1695
- `)
1696
- })
1697
- })
1698
-
1699
- describe('root command with subcommands', () => {
1700
- function createHybrid() {
1701
- const cli = Cli.create('tool', {
1702
- description: 'A tool with a default action',
1703
- args: z.object({ query: z.string().optional().describe('Search query') }),
1704
- run(c) {
1705
- return { default: true, query: c.args.query ?? null }
1706
- },
1707
- })
1708
- cli.command('info', {
1709
- description: 'Show info',
1710
- run: () => ({ info: true }),
1711
- })
1712
- cli.command('version', {
1713
- description: 'Show version',
1714
- run: () => ({ version: '1.0.0' }),
1715
- })
1716
- return cli
1717
- }
1718
-
1719
- test('runs root handler with no args', async () => {
1720
- const { output } = await serve(createHybrid(), [])
1721
- expect(output).toMatchInlineSnapshot(`
1722
- "default: true
1723
- query: null
1724
- "
1725
- `)
1726
- })
1727
-
1728
- test('runs root handler with positional args', async () => {
1729
- const { output } = await serve(createHybrid(), ['hello'])
1730
- expect(output).toMatchInlineSnapshot(`
1731
- "default: true
1732
- query: hello
1733
- "
1734
- `)
1735
- })
1736
-
1737
- test('subcommand takes precedence', async () => {
1738
- const { output } = await serve(createHybrid(), ['info'])
1739
- expect(output).toMatchInlineSnapshot(`
1740
- "info: true
1741
- "
1742
- `)
1743
- })
1744
-
1745
- test('--help shows root usage and subcommands', async () => {
1746
- const { output } = await serve(createHybrid(), ['--help'])
1747
- expect(output).toMatchInlineSnapshot(`
1748
- "tool — A tool with a default action
1749
-
1750
- Usage: tool [query] | <command>
1751
-
1752
- Arguments:
1753
- query Search query
1754
-
1755
- Commands:
1756
- info Show info
1757
- version Show version
1758
-
1759
- Integrations:
1760
- completions Generate shell completion script
1761
- mcp add Register as MCP server
1762
- skills Sync skill files to agents (add, list)
1763
-
1764
- Global Options:
1765
- --filter-output <keys> Filter output by key paths (e.g. foo,bar.baz,a[0,3])
1766
- --format <toon|json|yaml|md|jsonl> Output format
1767
- --full-output Show full output envelope
1768
- --help Show help
1769
- --llms, --llms-full Print LLM-readable manifest
1770
- --mcp Start as MCP stdio server
1771
- --schema Show JSON Schema for command
1772
- --token-count Print token count of output (instead of output)
1773
- --token-limit <n> Limit output to n tokens
1774
- --token-offset <n> Skip first n tokens of output
1775
- --version Show version
1776
- "
1777
- `)
1778
- })
1779
-
1780
- test('subcommand --help shows subcommand help', async () => {
1781
- const { output } = await serve(createHybrid(), ['info', '--help'])
1782
- expect(output).toContain('tool info')
1783
- expect(output).toContain('Show info')
1784
- expect(output).not.toContain('Commands:')
1785
- })
1786
- })
1787
-
1788
- describe('edge cases', () => {
1789
- test('command with only options (no args)', async () => {
1790
- const { output } = await serve(createApp(), [
1791
- 'project',
1792
- 'list',
1793
- '--limit',
1794
- '1',
1795
- '--format',
1796
- 'json',
1797
- ])
1798
- expect(json(output)).toMatchInlineSnapshot(`
1799
- {
1800
- "cta": {
1801
- "commands": [
1802
- {
1803
- "command": "app project get p1",
1804
- "description": "View "Alpha"",
1805
- },
1806
- ],
1807
- "description": "Suggested command:",
1808
- },
1809
- "items": [
1810
- {
1811
- "archived": false,
1812
- "id": "p1",
1813
- "name": "Alpha",
1814
- },
1815
- ],
1816
- "total": 1,
1817
- }
1818
- `)
1819
- })
1820
-
1821
- test('command with only args (no options)', async () => {
1822
- const { output } = await serve(createApp(), ['project', 'get', 'p1', '--format', 'json'])
1823
- expect(json(output)).toMatchInlineSnapshot(`
1824
- {
1825
- "description": "Main project",
1826
- "id": "p1",
1827
- "members": [
1828
- {
1829
- "role": "admin",
1830
- "userId": "u1",
1831
- },
1832
- ],
1833
- "name": "Alpha",
1834
- }
1835
- `)
1836
- })
1837
-
1838
- test('command with no schemas at all', async () => {
1839
- const { output } = await serve(createApp(), ['ping', '--format', 'json'])
1840
- expect(json(output)).toMatchInlineSnapshot(`
1841
- {
1842
- "pong": true,
1843
- }
1844
- `)
1845
- })
1846
-
1847
- test('optional arg can be omitted', async () => {
1848
- const { output } = await serve(createApp(), ['config', '--format', 'json'])
1849
- expect(json(output)).toMatchInlineSnapshot(`
1850
- {
1851
- "apiUrl": "https://api.example.com",
1852
- "debug": false,
1853
- "timeout": 30,
1854
- }
1855
- `)
1856
- })
1857
-
1858
- test('--force passes through to handler', async () => {
1859
- const { output } = await serve(createApp(), [
1860
- 'project',
1861
- 'delete',
1862
- 'p1',
1863
- '--force',
1864
- '--format',
1865
- 'json',
1866
- ])
1867
- expect(json(output)).toMatchInlineSnapshot(`
1868
- {
1869
- "deleted": true,
1870
- "id": "p1",
1871
- }
1872
- `)
1873
- })
1874
-
1875
- test('flag order does not matter', async () => {
1876
- const { output } = await serve(createApp(), [
1877
- '--format',
1878
- 'json',
1879
- 'project',
1880
- 'deploy',
1881
- 'create',
1882
- 'prod',
1883
- '--branch',
1884
- 'release',
1885
- '--full-output',
1886
- ])
1887
- expect(json(output)).toMatchInlineSnapshot(`
1888
- {
1889
- "data": {
1890
- "deployId": "d-123",
1891
- "status": "pending",
1892
- "url": "https://prod.example.com",
1893
- },
1894
- "meta": {
1895
- "command": "project deploy create",
1896
- "duration": "<stripped>",
1897
- },
1898
- "ok": true,
1899
- }
1900
- `)
1901
- })
1902
-
1903
- test('empty argv on router shows help', async () => {
1904
- const { output, exitCode } = await serve(createApp(), [])
1905
- expect(exitCode).toBeUndefined()
1906
- expect(output).toContain('Usage: app <command>')
1907
- })
1908
- })
1909
-
1910
- describe('env', () => {
1911
- test('env vars passed to handler', async () => {
1912
- const { output } = await serve(
1913
- createApp(),
1914
- ['auth', 'login', '--full-output', '--format', 'json'],
1915
- { env: { AUTH_HOST: 'custom.example.com' } },
1916
- )
1917
- expect(json(output).data.hostname).toBe('custom.example.com')
1918
- })
1919
-
1920
- test('env defaults applied when var is unset', async () => {
1921
- const { output } = await serve(
1922
- createApp(),
1923
- ['auth', 'login', '--full-output', '--format', 'json'],
1924
- { env: {} },
1925
- )
1926
- expect(json(output).data.hostname).toBe('api.example.com')
1927
- })
1928
-
1929
- test('--help shows env vars section', async () => {
1930
- const { output } = await serve(createApp(), ['auth', 'login', '--help'])
1931
- expect(output).toMatchInlineSnapshot(`
1932
- "app auth login — Log in to the service
1933
-
1934
- Usage: app auth login [options]
1935
-
1936
- Options:
1937
- --hostname, -h <string> API hostname (default: api.example.com)
1938
- --web, -w Open browser
1939
- --scopes <array> OAuth scopes
1940
-
1941
- Global Options:
1942
- --filter-output <keys> Filter output by key paths (e.g. foo,bar.baz,a[0,3])
1943
- --format <toon|json|yaml|md|jsonl> Output format
1944
- --full-output Show full output envelope
1945
- --help Show help
1946
- --llms, --llms-full Print LLM-readable manifest
1947
- --schema Show JSON Schema for command
1948
- --token-count Print token count of output (instead of output)
1949
- --token-limit <n> Limit output to n tokens
1950
- --token-offset <n> Skip first n tokens of output
1951
-
1952
- Environment Variables:
1953
- AUTH_TOKEN Pre-existing auth token
1954
- AUTH_HOST Auth server hostname (default: api.example.com)
1955
- "
1956
- `)
1957
- })
1958
-
1959
- test('--llms-full json includes schema.env', async () => {
1960
- const { output } = await serve(createApp(), ['auth', '--llms-full', '--format', 'json'])
1961
- const login = json(output).commands.find((c: any) => c.name === 'auth login')
1962
- expect(login.schema.env.properties).toMatchInlineSnapshot(`
1963
- {
1964
- "AUTH_HOST": {
1965
- "default": "api.example.com",
1966
- "description": "Auth server hostname",
1967
- "type": "string",
1968
- },
1969
- "AUTH_TOKEN": {
1970
- "description": "Pre-existing auth token",
1971
- "type": "string",
1972
- },
1973
- }
1974
- `)
1975
- })
1976
-
1977
- test('--llms-full markdown includes env vars table', async () => {
1978
- const { output } = await serve(createApp(), ['auth', '--llms-full'])
1979
- expect(output).toContain('Environment Variables')
1980
- expect(output).toContain('`AUTH_TOKEN`')
1981
- expect(output).toContain('`AUTH_HOST`')
1982
- })
1983
- })
1984
-
1985
- describe('skills staleness', () => {
1986
- let stderrSpy: ReturnType<typeof vi.spyOn>
1987
-
1988
- beforeEach(() => {
1989
- stderrSpy = vi.spyOn(process.stderr, 'write').mockImplementation(() => true)
1990
- __mockSkillsHash = undefined
1991
- __mockSkillsInstalled = true
1992
- })
1993
-
1994
- afterEach(() => {
1995
- stderrSpy.mockRestore()
1996
- __mockSkillsHash = undefined
1997
- __mockSkillsInstalled = true
1998
- })
1999
-
2000
- test('includes skills CTA when stale', async () => {
2001
- __mockSkillsHash = '0000000000000000'
2002
- const { output } = await serve(createApp(), ['ping'])
2003
- expect(output).toContain('pong: true')
2004
- expect(output).toContain('Skills are out of date:')
2005
- expect(output).toContain('skills add')
2006
- })
2007
-
2008
- test('no warning when skills hash matches', async () => {
2009
- // Use a simple CLI where we can compute the exact hash
2010
- const cli = Cli.create('tool', { version: '1.0.0' })
2011
- cli.command('ping', { description: 'Health check', run: () => ({ pong: true }) })
2012
- __mockSkillsHash = Skill.hash([{ name: 'ping', description: 'Health check' }])
2013
-
2014
- const { output } = await serve(cli, ['ping'])
2015
- expect(output).toContain('pong: true')
2016
- expect(output).not.toContain('Skills are out of date')
2017
- })
2018
-
2019
- test('no warning on first use (no hash stored)', async () => {
2020
- __mockSkillsHash = undefined
2021
- const { output } = await serve(createApp(), ['ping'])
2022
- expect(output).toContain('pong: true')
2023
- expect(output).not.toContain('Skills are out of date')
2024
- })
2025
-
2026
- test('no warning when skills are not installed', async () => {
2027
- __mockSkillsHash = '0000000000000000'
2028
- __mockSkillsInstalled = false
2029
- const { output } = await serve(createApp(), ['ping'])
2030
- expect(output).toContain('pong: true')
2031
- expect(output).not.toContain('Skills are out of date')
2032
- })
2033
-
2034
- test('no warning for --llms', async () => {
2035
- __mockSkillsHash = '0000000000000000'
2036
- const { output } = await serve(createApp(), ['--llms'])
2037
- expect(output).not.toContain('Skills are out of date')
2038
- })
2039
-
2040
- test('no warning for --mcp', async () => {
2041
- __mockSkillsHash = '0000000000000000'
2042
- // --mcp starts a server that reads stdin, so we can't easily test it here.
2043
- // Instead verify it doesn't reach the staleness check by checking --version
2044
- await serve(createApp(), ['--version'])
2045
- expect(stderrSpy).not.toHaveBeenCalled()
2046
- })
2047
- })
2048
-
2049
- describe('middleware', () => {
2050
- test('onion execution order around handler', async () => {
2051
- const { cli, order } = createMiddlewareApp()
2052
- const { output } = await serve(cli, ['ping'])
2053
- expect(output).toContain('pong: true')
2054
- expect(order).toEqual(['root-mw:before', 'ping-handler', 'root-mw:after'])
2055
- })
2056
-
2057
- test('vars: defaults initialize, middleware overrides with set()', async () => {
2058
- const { cli } = createMiddlewareApp()
2059
- const { output } = await serve(cli, ['whoami'])
2060
- expect(output).toMatchInlineSnapshot(`
2061
- "user: alice
2062
- requestId: req-default
2063
- "
2064
- `)
2065
- })
2066
-
2067
- test('vars: full-output envelope includes var data', async () => {
2068
- const { cli } = createMiddlewareApp()
2069
- const { output } = await serve(cli, ['whoami', '--full-output', '--format', 'json'])
2070
- const parsed = json(output)
2071
- expect(parsed.data.user).toBe('alice')
2072
- expect(parsed.data.requestId).toBe('req-default')
2073
- })
2074
-
2075
- test('group-scoped middleware runs after root middleware', async () => {
2076
- const { cli, order } = createMiddlewareApp()
2077
- order.length = 0
2078
- await serve(cli, ['admin', 'reset'])
2079
- expect(order).toEqual(['root-mw:before', 'admin-mw', 'reset-handler', 'root-mw:after'])
2080
- })
2081
-
2082
- test('group middleware does not run for non-group commands', async () => {
2083
- const { cli, order } = createMiddlewareApp()
2084
- order.length = 0
2085
- await serve(cli, ['ping'])
2086
- expect(order).not.toContain('admin-mw')
2087
- })
2088
-
2089
- test('middleware wraps streaming handlers', async () => {
2090
- const { cli, order } = createMiddlewareApp()
2091
- order.length = 0
2092
- const { output } = await serve(cli, ['stream'])
2093
- expect(output).toContain('n: 1')
2094
- expect(output).toContain('n: 2')
2095
- expect(order).toEqual(['root-mw:before', 'stream:1', 'stream:2', 'root-mw:after'])
2096
- })
2097
-
2098
- test('middleware errors propagate as command errors', async () => {
2099
- const { cli } = createMiddlewareApp()
2100
- const { output, exitCode } = await serve(cli, ['explode'])
2101
- expect(exitCode).toBe(1)
2102
- expect(output).toContain('BOOM')
2103
- expect(output).toContain('kaboom')
2104
- })
2105
-
2106
- test('middleware does not run for --help', async () => {
2107
- const { cli, order } = createMiddlewareApp()
2108
- order.length = 0
2109
- await serve(cli, ['--help'])
2110
- expect(order).toEqual([])
2111
- })
2112
-
2113
- test('middleware does not run for --llms', async () => {
2114
- const { cli, order } = createMiddlewareApp()
2115
- order.length = 0
2116
- await serve(cli, ['--llms'])
2117
- expect(order).toEqual([])
2118
- })
2119
-
2120
- test('middleware does not run for --version', async () => {
2121
- const { cli, order } = createMiddlewareApp()
2122
- order.length = 0
2123
- await serve(cli, ['--version'])
2124
- expect(order).toEqual([])
2125
- })
2126
-
2127
- test('middleware does not run for command --help', async () => {
2128
- const { cli, order } = createMiddlewareApp()
2129
- order.length = 0
2130
- await serve(cli, ['ping', '--help'])
2131
- expect(order).toEqual([])
2132
- })
2133
-
2134
- test('short-circuit: middleware that does not call next() prevents handler', async () => {
2135
- const order: string[] = []
2136
- const cli = Cli.create('app')
2137
- .use(async (_c, _next) => {
2138
- order.push('gate')
2139
- // intentionally not calling next()
2140
- })
2141
- .command('deploy', {
2142
- run() {
2143
- order.push('handler')
2144
- return { deployed: true }
2145
- },
2146
- })
2147
-
2148
- const { output } = await serve(cli, ['deploy'])
2149
- expect(order).toEqual(['gate'])
2150
- expect(output).toBe('')
2151
- })
2152
- })
2153
-
2154
- describe('deprecated flags', () => {
2155
- test('emits stderr warning when deprecated flag is used in TTY mode', async () => {
2156
- const cli = Cli.create('app').command('deploy', {
2157
- options: z.object({
2158
- zone: z.string().optional().describe('Availability zone').meta({ deprecated: true }),
2159
- region: z.string().optional().describe('Target region'),
2160
- }),
2161
- run: ({ options }) => ({ zone: options.zone, region: options.region }),
2162
- })
2163
-
2164
- const spy = vi.spyOn(process.stderr, 'write').mockImplementation(() => true)
2165
- ;(process.stdout as any).isTTY = true
2166
- try {
2167
- await serve(cli, ['deploy', '--zone', 'us-east-1'])
2168
- expect(spy).toHaveBeenCalledWith('Warning: --zone is deprecated\n')
2169
- } finally {
2170
- ;(process.stdout as any).isTTY = false
2171
- spy.mockRestore()
2172
- }
2173
- })
2174
-
2175
- test('does not emit stderr warning for non-deprecated flags', async () => {
2176
- const cli = Cli.create('app').command('deploy', {
2177
- options: z.object({
2178
- zone: z.string().optional().describe('Availability zone').meta({ deprecated: true }),
2179
- region: z.string().optional().describe('Target region'),
2180
- }),
2181
- run: ({ options }) => ({ region: options.region }),
2182
- })
2183
-
2184
- const spy = vi.spyOn(process.stderr, 'write').mockImplementation(() => true)
2185
- ;(process.stdout as any).isTTY = true
2186
- try {
2187
- await serve(cli, ['deploy', '--region', 'us-west-2'])
2188
- expect(spy).not.toHaveBeenCalledWith(expect.stringContaining('deprecated'))
2189
- } finally {
2190
- ;(process.stdout as any).isTTY = false
2191
- spy.mockRestore()
2192
- }
2193
- })
2194
-
2195
- test('does not emit stderr warning in agent mode (non-TTY)', async () => {
2196
- const cli = Cli.create('app').command('deploy', {
2197
- options: z.object({
2198
- zone: z.string().optional().describe('Availability zone').meta({ deprecated: true }),
2199
- }),
2200
- run: ({ options }) => ({ zone: options.zone }),
2201
- })
2202
-
2203
- const spy = vi.spyOn(process.stderr, 'write').mockImplementation(() => true)
2204
- try {
2205
- await serve(cli, ['deploy', '--zone', 'us-east-1'])
2206
- expect(spy).not.toHaveBeenCalledWith(expect.stringContaining('deprecated'))
2207
- } finally {
2208
- spy.mockRestore()
2209
- }
2210
- })
2211
- })
2212
-
2213
- describe('fetch gateway', () => {
2214
- test('routes to fetch handler', async () => {
2215
- const { output } = await serve(createApp(), ['api', 'health'])
2216
- expect(output).toMatchInlineSnapshot(`
2217
- "ok: true
2218
- "
2219
- `)
2220
- })
2221
-
2222
- test('path segments map to URL path', async () => {
2223
- const { output } = await serve(createApp(), ['api', 'users'])
2224
- expect(output).toContain('Alice')
2225
- })
2226
-
2227
- test('path segments with dynamic params', async () => {
2228
- const { output } = await serve(createApp(), ['api', 'users', '42'])
2229
- expect(output).toMatchInlineSnapshot(`
2230
- "id: 42
2231
- name: Alice
2232
- "
2233
- `)
2234
- })
2235
-
2236
- test('query params from --key value', async () => {
2237
- await serve(createApp(), ['api', 'users', '--limit', '5'])
2238
- const { output: jsonOut } = await serve(createApp(), [
2239
- 'api',
2240
- 'users',
2241
- '--limit',
2242
- '5',
2243
- '--format',
2244
- 'json',
2245
- ])
2246
- expect(json(jsonOut).limit).toBe(5)
2247
- })
2248
-
2249
- test('POST with -X and -d', async () => {
2250
- const { output } = await serve(createApp(), [
2251
- 'api',
2252
- 'users',
2253
- '-X',
2254
- 'POST',
2255
- '-d',
2256
- '{"name":"Bob"}',
2257
- ])
2258
- expect(output).toMatchInlineSnapshot(`
2259
- "created: true
2260
- name: Bob
2261
- "
2262
- `)
2263
- })
2264
-
2265
- test('implicit POST with --body', async () => {
2266
- const { output } = await serve(createApp(), ['api', 'users', '--body', '{"name":"Eve"}'])
2267
- expect(output).toMatchInlineSnapshot(`
2268
- "created: true
2269
- name: Eve
2270
- "
2271
- `)
2272
- })
2273
-
2274
- test('DELETE with --method', async () => {
2275
- const { output } = await serve(createApp(), ['api', 'users', '1', '--method', 'DELETE'])
2276
- expect(output).toMatchInlineSnapshot(`
2277
- "deleted: true
2278
- id: 1
2279
- "
2280
- `)
2281
- })
2282
-
2283
- test('error response produces error envelope', async () => {
2284
- const { output, exitCode } = await serve(createApp(), ['api', 'error'])
2285
- expect(exitCode).toBe(1)
2286
- expect(output).toMatchInlineSnapshot(`
2287
- "code: HTTP_404
2288
- message: not found
2289
- "
2290
- `)
2291
- })
2292
-
2293
- test('text response', async () => {
2294
- const { output } = await serve(createApp(), ['api', 'text'])
2295
- expect(output).toMatchInlineSnapshot(`
2296
- "hello world
2297
- "
2298
- `)
2299
- })
2300
-
2301
- test('--format json', async () => {
2302
- const { output } = await serve(createApp(), ['api', 'health', '--format', 'json'])
2303
- expect(json(output)).toEqual({ ok: true })
2304
- })
2305
-
2306
- test('--full-output wraps in envelope', async () => {
2307
- const { output } = await serve(createApp(), [
2308
- 'api',
2309
- 'health',
2310
- '--full-output',
2311
- '--format',
2312
- 'json',
2313
- ])
2314
- const parsed = json(output)
2315
- expect(parsed.ok).toBe(true)
2316
- expect(parsed.data).toEqual({ ok: true })
2317
- expect(parsed.meta.command).toBe('api')
2318
- expect(parsed.meta.duration).toBeDefined()
2319
- })
2320
-
2321
- test('--help shows curl-style flags', async () => {
2322
- const { output } = await serve(createApp(), ['api', '--help'])
2323
- expect(output).toContain('Proxy to HTTP API')
2324
- expect(output).toContain('--method')
2325
- expect(output).toContain('--header')
2326
- expect(output).toContain('--body')
2327
- expect(output).toContain('--data')
2328
- })
2329
-
2330
- test('appears in root --help', async () => {
2331
- const { output } = await serve(createApp(), ['--help'])
2332
- expect(output).toContain('api')
2333
- expect(output).toContain('Proxy to HTTP API')
2334
- })
2335
-
2336
- test('appears in --llms', async () => {
2337
- const { output } = await serve(createApp(), ['--llms'])
2338
- expect(output).toContain('api')
2339
- expect(output).toContain('Proxy to HTTP API')
2340
- })
2341
-
2342
- test('coexists with native commands', async () => {
2343
- const { output: fetchOut } = await serve(createApp(), ['api', 'health'])
2344
- expect(fetchOut).toContain('ok: true')
2345
- const { output: nativeOut } = await serve(createApp(), ['ping'])
2346
- expect(nativeOut).toContain('pong: true')
2347
- })
2348
-
2349
- test('streaming NDJSON response', async () => {
2350
- const { output } = await serve(createApp(), ['api', 'stream'])
2351
- expect(output).toMatchInlineSnapshot(`
2352
- "progress: 1
2353
- progress: 2
2354
- "
2355
- `)
2356
- })
2357
-
2358
- test('streaming NDJSON --format json buffers all chunks', async () => {
2359
- const { output } = await serve(createApp(), ['api', 'stream', '--format', 'json'])
2360
- expect(json(output)).toEqual([{ progress: 1 }, { progress: 2 }])
2361
- })
2362
-
2363
- test('streaming NDJSON --format jsonl', async () => {
2364
- const { output } = await serve(createApp(), ['api', 'stream', '--format', 'jsonl'])
2365
- const lines = output
2366
- .trim()
2367
- .split('\n')
2368
- .map((l) => JSON.parse(l))
2369
- expect(lines[0]).toEqual({ type: 'chunk', data: { progress: 1 } })
2370
- expect(lines[1]).toEqual({ type: 'chunk', data: { progress: 2 } })
2371
- expect(lines[2].type).toBe('done')
2372
- })
2373
- })
2374
-
2375
- async function fetchJson(cli: Cli.Cli<any, any, any>, req: Request) {
2376
- const res = await cli.fetch(req)
2377
- const body = await res.json()
2378
- if (body.meta?.duration) body.meta.duration = '<stripped>'
2379
- return { status: res.status, body }
2380
- }
2381
-
2382
- describe('fetch api', () => {
2383
- test('GET /ping → 200 with data', async () => {
2384
- const cli = createApp()
2385
- expect(await fetchJson(cli, new Request('http://localhost/ping'))).toMatchInlineSnapshot(`
2386
- {
2387
- "body": {
2388
- "data": {
2389
- "pong": true,
2390
- },
2391
- "meta": {
2392
- "command": "ping",
2393
- "duration": "<stripped>",
2394
- },
2395
- "ok": true,
2396
- },
2397
- "status": 200,
2398
- }
2399
- `)
2400
- })
2401
-
2402
- test('GET /unknown → 404', async () => {
2403
- const cli = createApp()
2404
- expect(await fetchJson(cli, new Request('http://localhost/unknown'))).toMatchInlineSnapshot(`
2405
- {
2406
- "body": {
2407
- "error": {
2408
- "code": "COMMAND_NOT_FOUND",
2409
- "message": "'unknown' is not a command for 'app'.",
2410
- },
2411
- "meta": {
2412
- "command": "unknown",
2413
- "duration": "<stripped>",
2414
- },
2415
- "ok": false,
2416
- },
2417
- "status": 404,
2418
- }
2419
- `)
2420
- })
2421
-
2422
- test('GET / without root command → 404', async () => {
2423
- const cli = createApp()
2424
- expect(await fetchJson(cli, new Request('http://localhost/'))).toMatchInlineSnapshot(`
2425
- {
2426
- "body": {
2427
- "error": {
2428
- "code": "COMMAND_NOT_FOUND",
2429
- "message": "No root command defined.",
2430
- },
2431
- "meta": {
2432
- "command": "/",
2433
- "duration": "<stripped>",
2434
- },
2435
- "ok": false,
2436
- },
2437
- "status": 404,
2438
- }
2439
- `)
2440
- })
2441
-
2442
- test('GET with query params → options', async () => {
2443
- const cli = createApp()
2444
- expect(await fetchJson(cli, new Request('http://localhost/echo/hi?prefix=yo')))
2445
- .toMatchInlineSnapshot(`
2446
- {
2447
- "body": {
2448
- "data": {
2449
- "result": [
2450
- "yo hi",
2451
- ],
2452
- },
2453
- "meta": {
2454
- "command": "echo",
2455
- "duration": "<stripped>",
2456
- },
2457
- "ok": true,
2458
- },
2459
- "status": 200,
2460
- }
2461
- `)
2462
- })
2463
-
2464
- test('POST with JSON body → options', async () => {
2465
- const cli = createApp()
2466
- const req = new Request('http://localhost/project/create/MyProject', {
2467
- method: 'POST',
2468
- headers: { 'content-type': 'application/json' },
2469
- body: JSON.stringify({ description: 'A test project' }),
2470
- })
2471
- expect(await fetchJson(cli, req)).toMatchInlineSnapshot(`
2472
- {
2473
- "body": {
2474
- "data": {
2475
- "id": "p-new",
2476
- "url": "https://example.com/projects/p-new",
2477
- },
2478
- "meta": {
2479
- "command": "project create",
2480
- "cta": {
2481
- "commands": [
2482
- {
2483
- "command": "app project get p-new",
2484
- "description": "View "MyProject"",
2485
- },
2486
- {
2487
- "command": "app project list",
2488
- },
2489
- ],
2490
- "description": "Suggested commands:",
2491
- },
2492
- "duration": "<stripped>",
2493
- },
2494
- "ok": true,
2495
- },
2496
- "status": 200,
2497
- }
2498
- `)
2499
- })
2500
-
2501
- test('trailing path segments → positional args', async () => {
2502
- const cli = createApp()
2503
- expect(await fetchJson(cli, new Request('http://localhost/project/get/p1')))
2504
- .toMatchInlineSnapshot(`
2505
- {
2506
- "body": {
2507
- "data": {
2508
- "description": "Main project",
2509
- "id": "p1",
2510
- "members": [
2511
- {
2512
- "role": "admin",
2513
- "userId": "u1",
2514
- },
2515
- ],
2516
- "name": "Alpha",
2517
- },
2518
- "meta": {
2519
- "command": "project get",
2520
- "duration": "<stripped>",
2521
- },
2522
- "ok": true,
2523
- },
2524
- "status": 200,
2525
- }
2526
- `)
2527
- })
2528
-
2529
- test('nested command (3 levels deep)', async () => {
2530
- const cli = createApp()
2531
- expect(await fetchJson(cli, new Request('http://localhost/project/deploy/status/d-456')))
2532
- .toMatchInlineSnapshot(`
2533
- {
2534
- "body": {
2535
- "data": {
2536
- "deployId": "d-456",
2537
- "progress": 75,
2538
- "status": "running",
2539
- },
2540
- "meta": {
2541
- "command": "project deploy status",
2542
- "duration": "<stripped>",
2543
- },
2544
- "ok": true,
2545
- },
2546
- "status": 200,
2547
- }
2548
- `)
2549
- })
2550
-
2551
- test('thrown error → 500', async () => {
2552
- const cli = createApp()
2553
- expect(await fetchJson(cli, new Request('http://localhost/explode'))).toMatchInlineSnapshot(`
2554
- {
2555
- "body": {
2556
- "error": {
2557
- "code": "UNKNOWN",
2558
- "message": "kaboom",
2559
- },
2560
- "meta": {
2561
- "command": "explode",
2562
- "duration": "<stripped>",
2563
- },
2564
- "ok": false,
2565
- },
2566
- "status": 500,
2567
- }
2568
- `)
2569
- })
2570
-
2571
- test('IncurError → 500 with code', async () => {
2572
- const cli = createApp()
2573
- expect(await fetchJson(cli, new Request('http://localhost/explode-clac')))
2574
- .toMatchInlineSnapshot(`
2575
- {
2576
- "body": {
2577
- "error": {
2578
- "code": "QUOTA_EXCEEDED",
2579
- "message": "Rate limit exceeded",
2580
- "retryable": true,
2581
- },
2582
- "meta": {
2583
- "command": "explode-clac",
2584
- "duration": "<stripped>",
2585
- },
2586
- "ok": false,
2587
- },
2588
- "status": 500,
2589
- }
2590
- `)
2591
- })
2592
-
2593
- test('validation error → 400', async () => {
2594
- const cli = createApp()
2595
- const { status, body } = await fetchJson(cli, new Request('http://localhost/validate-fail'))
2596
- expect(status).toBe(400)
2597
- expect(body.ok).toBe(false)
2598
- expect(body.error.code).toBe('VALIDATION_ERROR')
2599
- })
2600
-
2601
- test('async generator → NDJSON streaming', async () => {
2602
- const cli = createApp()
2603
- const res = await cli.fetch(new Request('http://localhost/stream'))
2604
- expect(res.status).toBe(200)
2605
- expect(res.headers.get('content-type')).toBe('application/x-ndjson')
2606
- const lines = (await res.text())
2607
- .trim()
2608
- .split('\n')
2609
- .map((l) => JSON.parse(l))
2610
- expect(lines).toMatchInlineSnapshot(`
2611
- [
2612
- {
2613
- "data": {
2614
- "content": "hello",
2615
- },
2616
- "type": "chunk",
2617
- },
2618
- {
2619
- "data": {
2620
- "content": "world",
2621
- },
2622
- "type": "chunk",
2623
- },
2624
- {
2625
- "meta": {
2626
- "command": "stream",
2627
- },
2628
- "ok": true,
2629
- "type": "done",
2630
- },
2631
- ]
2632
- `)
2633
- })
2634
-
2635
- test('fetch gateway → forwards request', async () => {
2636
- const handler = (req: Request) => {
2637
- const url = new URL(req.url)
2638
- return new Response(JSON.stringify({ path: url.pathname }), {
2639
- headers: { 'content-type': 'application/json' },
2640
- })
2641
- }
2642
- const cli = Cli.create('test')
2643
- cli.command('api', { fetch: handler })
2644
- const res = await cli.fetch(new Request('http://localhost/api/users'))
2645
- expect(res.status).toBe(200)
2646
- expect(await res.json()).toMatchInlineSnapshot(`
2647
- {
2648
- "path": "/api/users",
2649
- }
2650
- `)
2651
- })
2652
-
2653
- test('middleware sets var → command sees it', async () => {
2654
- const { cli } = createMiddlewareApp()
2655
- expect(await fetchJson(cli, new Request('http://localhost/whoami'))).toMatchInlineSnapshot(`
2656
- {
2657
- "body": {
2658
- "data": {
2659
- "requestId": "req-default",
2660
- "user": "alice",
2661
- },
2662
- "meta": {
2663
- "command": "whoami",
2664
- "duration": "<stripped>",
2665
- },
2666
- "ok": true,
2667
- },
2668
- "status": 200,
2669
- }
2670
- `)
2671
- })
2672
-
2673
- test('middleware error → error response', async () => {
2674
- const cli = Cli.create('test')
2675
- cli.use((c) => {
2676
- c.error({ code: 'FORBIDDEN', message: 'nope' })
2677
- })
2678
- cli.command('secret', { run: () => ({ secret: true }) })
2679
- expect(await fetchJson(cli, new Request('http://localhost/secret'))).toMatchInlineSnapshot(`
2680
- {
2681
- "body": {
2682
- "error": {
2683
- "code": "FORBIDDEN",
2684
- "message": "nope",
2685
- },
2686
- "meta": {
2687
- "command": "secret",
2688
- "duration": "<stripped>",
2689
- },
2690
- "ok": false,
2691
- },
2692
- "status": 500,
2693
- }
2694
- `)
2695
- })
2696
-
2697
- describe('mcp over http', () => {
2698
- function mcpRequest(cli: Cli.Cli<any, any, any>, body: unknown, sessionId?: string) {
2699
- const headers: Record<string, string> = {
2700
- 'content-type': 'application/json',
2701
- accept: 'application/json, text/event-stream',
2702
- }
2703
- if (sessionId) headers['mcp-session-id'] = sessionId
2704
- return cli.fetch(
2705
- new Request('http://localhost/mcp', {
2706
- method: 'POST',
2707
- headers,
2708
- body: JSON.stringify(body),
2709
- }),
2710
- )
2711
- }
2712
-
2713
- async function initSession(cli: Cli.Cli<any, any, any>) {
2714
- const res = await mcpRequest(cli, {
2715
- jsonrpc: '2.0',
2716
- id: 1,
2717
- method: 'initialize',
2718
- params: {
2719
- protocolVersion: '2025-03-26',
2720
- capabilities: {},
2721
- clientInfo: { name: 'test-client', version: '1.0.0' },
2722
- },
2723
- })
2724
- const sessionId = res.headers.get('mcp-session-id')!
2725
- await mcpRequest(cli, { jsonrpc: '2.0', method: 'notifications/initialized' }, sessionId)
2726
- return sessionId
2727
- }
2728
-
2729
- test('initialize → returns server info and capabilities', async () => {
2730
- const cli = createApp()
2731
- const res = await mcpRequest(cli, {
2732
- jsonrpc: '2.0',
2733
- id: 1,
2734
- method: 'initialize',
2735
- params: {
2736
- protocolVersion: '2025-03-26',
2737
- capabilities: {},
2738
- clientInfo: { name: 'test-client', version: '1.0.0' },
2739
- },
2740
- })
2741
- expect(res.status).toBe(200)
2742
- const body = await res.json()
2743
- expect({
2744
- serverInfo: body.result.serverInfo,
2745
- hasTools: 'tools' in (body.result.capabilities ?? {}),
2746
- }).toMatchInlineSnapshot(`
2747
- {
2748
- "hasTools": true,
2749
- "serverInfo": {
2750
- "name": "app",
2751
- "version": "3.5.0",
2752
- },
2753
- }
2754
- `)
2755
- })
2756
-
2757
- test('tools/list → lists all registered tools', async () => {
2758
- const cli = createApp()
2759
- const sessionId = await initSession(cli)
2760
- const res = await mcpRequest(
2761
- cli,
2762
- { jsonrpc: '2.0', id: 2, method: 'tools/list', params: {} },
2763
- sessionId,
2764
- )
2765
- expect(res.status).toBe(200)
2766
- const body = await res.json()
2767
- const names = body.result.tools.map((t: any) => t.name).sort()
2768
- expect(names).toMatchInlineSnapshot(`
2769
- [
2770
- "api",
2771
- "auth_login",
2772
- "auth_logout",
2773
- "auth_status",
2774
- "config",
2775
- "echo",
2776
- "explode",
2777
- "explode-clac",
2778
- "noop",
2779
- "ping",
2780
- "project_create",
2781
- "project_delete",
2782
- "project_deploy_create",
2783
- "project_deploy_rollback",
2784
- "project_deploy_status",
2785
- "project_get",
2786
- "project_list",
2787
- "slow",
2788
- "stream",
2789
- "stream-error",
2790
- "stream-ok",
2791
- "stream-text",
2792
- "stream-throw",
2793
- "validate-fail",
2794
- ]
2795
- `)
2796
- })
2797
-
2798
- test('tools/call → executes command and returns result', async () => {
2799
- const cli = createApp()
2800
- const sessionId = await initSession(cli)
2801
- const res = await mcpRequest(
2802
- cli,
2803
- {
2804
- jsonrpc: '2.0',
2805
- id: 3,
2806
- method: 'tools/call',
2807
- params: { name: 'echo', arguments: { message: 'hello' } },
2808
- },
2809
- sessionId,
2810
- )
2811
- expect(res.status).toBe(200)
2812
- const body = await res.json()
2813
- expect({
2814
- isError: body.result.isError,
2815
- content: JSON.parse(body.result.content[0].text),
2816
- }).toMatchInlineSnapshot(`
2817
- {
2818
- "content": {
2819
- "result": [
2820
- "hello",
2821
- ],
2822
- },
2823
- "isError": undefined,
2824
- }
2825
- `)
2826
- })
2827
-
2828
- test('tools/call with nested command', async () => {
2829
- const cli = createApp()
2830
- const sessionId = await initSession(cli)
2831
- const res = await mcpRequest(
2832
- cli,
2833
- {
2834
- jsonrpc: '2.0',
2835
- id: 4,
2836
- method: 'tools/call',
2837
- params: { name: 'project_get', arguments: { id: 'p1' } },
2838
- },
2839
- sessionId,
2840
- )
2841
- expect(res.status).toBe(200)
2842
- const body = await res.json()
2843
- expect(JSON.parse(body.result.content[0].text)).toMatchInlineSnapshot(`
2844
- {
2845
- "description": "Main project",
2846
- "id": "p1",
2847
- "members": [
2848
- {
2849
- "role": "admin",
2850
- "userId": "u1",
2851
- },
2852
- ],
2853
- "name": "Alpha",
2854
- }
2855
- `)
2856
- })
2857
-
2858
- test('tools/call with error → isError true', async () => {
2859
- const cli = createApp()
2860
- const sessionId = await initSession(cli)
2861
- const res = await mcpRequest(
2862
- cli,
2863
- {
2864
- jsonrpc: '2.0',
2865
- id: 5,
2866
- method: 'tools/call',
2867
- params: { name: 'explode', arguments: {} },
2868
- },
2869
- sessionId,
2870
- )
2871
- expect(res.status).toBe(200)
2872
- const body = await res.json()
2873
- expect({
2874
- isError: body.result.isError,
2875
- text: body.result.content[0].text,
2876
- }).toMatchInlineSnapshot(`
2877
- {
2878
- "isError": true,
2879
- "text": "kaboom",
2880
- }
2881
- `)
2882
- })
2883
-
2884
- test('tools/call with no-args command', async () => {
2885
- const cli = createApp()
2886
- const sessionId = await initSession(cli)
2887
- const res = await mcpRequest(
2888
- cli,
2889
- {
2890
- jsonrpc: '2.0',
2891
- id: 6,
2892
- method: 'tools/call',
2893
- params: { name: 'ping', arguments: {} },
2894
- },
2895
- sessionId,
2896
- )
2897
- expect(res.status).toBe(200)
2898
- const body = await res.json()
2899
- expect(JSON.parse(body.result.content[0].text)).toMatchInlineSnapshot(`
2900
- {
2901
- "pong": true,
2902
- }
2903
- `)
2904
- })
2905
-
2906
- test('tools/call with streaming command', async () => {
2907
- const cli = createApp()
2908
- const sessionId = await initSession(cli)
2909
- const res = await mcpRequest(
2910
- cli,
2911
- {
2912
- jsonrpc: '2.0',
2913
- id: 7,
2914
- method: 'tools/call',
2915
- params: { name: 'stream', arguments: {} },
2916
- },
2917
- sessionId,
2918
- )
2919
- expect(res.status).toBe(200)
2920
- const body = await res.json()
2921
- const chunks = JSON.parse(body.result.content[0].text)
2922
- expect(chunks).toEqual([{ content: 'hello' }, { content: 'world' }])
2923
- })
2924
-
2925
- test('non-/mcp paths still work alongside MCP', async () => {
2926
- const cli = createApp()
2927
- // Initialize MCP first
2928
- await initSession(cli)
2929
- // Regular fetch still works
2930
- expect(await fetchJson(cli, new Request('http://localhost/ping'))).toMatchInlineSnapshot(`
2931
- {
2932
- "body": {
2933
- "data": {
2934
- "pong": true,
2935
- },
2936
- "meta": {
2937
- "command": "ping",
2938
- "duration": "<stripped>",
2939
- },
2940
- "ok": true,
2941
- },
2942
- "status": 200,
2943
- }
2944
- `)
2945
- })
2946
- })
2947
- })
2948
-
2949
- describe('.well-known/skills', () => {
2950
- async function fetchSkills(cli: Cli.Cli<any, any, any>, path: string) {
2951
- const res = await cli.fetch(new Request(`http://localhost${path}`))
2952
- const contentType = res.headers.get('content-type')
2953
- const body = contentType?.includes('json') ? await res.json() : await res.text()
2954
- return { status: res.status, contentType, cacheControl: res.headers.get('cache-control'), body }
2955
- }
2956
-
2957
- test('GET /.well-known/skills/index.json returns skill index', async () => {
2958
- const cli = createApp()
2959
- const result = await fetchSkills(cli, '/.well-known/skills/index.json')
2960
- expect(result.status).toBe(200)
2961
- expect(result.contentType).toBe('application/json')
2962
- expect(result.cacheControl).toBe('public, max-age=300')
2963
- const names = result.body.skills.map((s: any) => s.name)
2964
- expect(names).toMatchInlineSnapshot(`
2965
- [
2966
- "api",
2967
- "auth",
2968
- "config",
2969
- "echo",
2970
- "explode",
2971
- "explode-clac",
2972
- "noop",
2973
- "ping",
2974
- "project",
2975
- "slow",
2976
- "stream",
2977
- "stream-error",
2978
- "stream-ok",
2979
- "stream-text",
2980
- "stream-throw",
2981
- "validate-fail",
2982
- ]
2983
- `)
2984
- expect(result.body.skills[0]).toMatchInlineSnapshot(`
2985
- {
2986
- "description": "Proxy to HTTP API. Run \`app api --help\` for usage details.",
2987
- "files": [
2988
- "SKILL.md",
2989
- ],
2990
- "name": "api",
2991
- }
2992
- `)
2993
- })
2994
-
2995
- test('GET /.well-known/skills/{name}/SKILL.md returns skill markdown', async () => {
2996
- const cli = createApp()
2997
- const result = await fetchSkills(cli, '/.well-known/skills/ping/SKILL.md')
2998
- expect(result.status).toBe(200)
2999
- expect(result.contentType).toBe('text/markdown')
3000
- expect(result.cacheControl).toBe('public, max-age=300')
3001
- expect(result.body).toMatchInlineSnapshot(`
3002
- "---
3003
- name: app-ping
3004
- description: Health check. Run \`app ping --help\` for usage details.
3005
- requires_bin: app
3006
- command: app ping
3007
- ---
3008
-
3009
- # app ping
3010
-
3011
- Health check"
3012
- `)
3013
- })
3014
-
3015
- test('GET /.well-known/skills/unknown/SKILL.md → 404', async () => {
3016
- const cli = createApp()
3017
- const result = await fetchSkills(cli, '/.well-known/skills/nonexistent/SKILL.md')
3018
- expect(result.status).toBe(404)
3019
- })
3020
-
3021
- test('GET /.well-known/skills/unknown-path → 404', async () => {
3022
- const cli = createApp()
3023
- const result = await fetchSkills(cli, '/.well-known/skills/bad-path')
3024
- expect(result.status).toBe(404)
3025
- })
3026
- })
3027
-
3028
- async function serve(
3029
- cli: { serve: Cli.Cli['serve'] },
3030
- argv: string[],
3031
- options: Cli.serve.Options = {},
3032
- ) {
3033
- let output = ''
3034
- let exitCode: number | undefined
3035
- await cli.serve(argv, {
3036
- stdout(s) {
3037
- output += s
3038
- },
3039
- exit(code) {
3040
- exitCode = code
3041
- },
3042
- ...options,
3043
- })
3044
- return {
3045
- output: output
3046
- .replace(/duration: \d+ms/g, 'duration: <stripped>')
3047
- .replace(/"duration": "\d+ms"/g, '"duration": "<stripped>"'),
3048
- exitCode,
3049
- }
3050
- }
3051
-
3052
- function json(raw: string) {
3053
- return JSON.parse(raw)
3054
- }
3055
-
3056
- function createMiddlewareApp() {
3057
- const order: string[] = []
3058
-
3059
- const admin = Cli.create('admin', { description: 'Admin commands' })
3060
- .use(async (_c, next) => {
3061
- order.push('admin-mw')
3062
- await next()
3063
- })
3064
- .command('reset', {
3065
- description: 'Reset database',
3066
- run() {
3067
- order.push('reset-handler')
3068
- return { reset: true }
3069
- },
3070
- })
3071
-
3072
- const cli = Cli.create('app', {
3073
- description: 'Middleware test app',
3074
- version: '1.0.0',
3075
- vars: z.object({
3076
- user: z.string().default('anon'),
3077
- requestId: z.string().default(() => 'req-default'),
3078
- }),
3079
- })
3080
- .use(async (c, next) => {
3081
- order.push('root-mw:before')
3082
- c.set('user', 'alice')
3083
- await next()
3084
- order.push('root-mw:after')
3085
- })
3086
- .command('whoami', {
3087
- description: 'Show current user',
3088
- run(c) {
3089
- order.push('whoami-handler')
3090
- return { user: c.var.user, requestId: c.var.requestId }
3091
- },
3092
- })
3093
- .command('ping', {
3094
- description: 'Health check',
3095
- run() {
3096
- order.push('ping-handler')
3097
- return { pong: true }
3098
- },
3099
- })
3100
- .command('explode', {
3101
- description: 'Always fails',
3102
- run() {
3103
- throw new Errors.IncurError({ code: 'BOOM', message: 'kaboom' })
3104
- },
3105
- })
3106
- .command('stream', {
3107
- description: 'Stream chunks',
3108
- async *run() {
3109
- order.push('stream:1')
3110
- yield { n: 1 }
3111
- order.push('stream:2')
3112
- yield { n: 2 }
3113
- },
3114
- })
3115
- .command(admin)
3116
-
3117
- return { cli, order }
3118
- }
3119
-
3120
- function createApp() {
3121
- const auth = Cli.create('auth', { description: 'Authentication commands' })
3122
- .command('login', {
3123
- description: 'Log in to the service',
3124
- env: z.object({
3125
- AUTH_TOKEN: z.string().optional().describe('Pre-existing auth token'),
3126
- AUTH_HOST: z.string().default('api.example.com').describe('Auth server hostname'),
3127
- }),
3128
- options: z.object({
3129
- hostname: z.string().default('api.example.com').describe('API hostname'),
3130
- web: z.boolean().default(false).describe('Open browser'),
3131
- scopes: z.array(z.string()).default([]).describe('OAuth scopes'),
3132
- }),
3133
- alias: { hostname: 'h', web: 'w' },
3134
- run(c) {
3135
- return c.ok(
3136
- { hostname: c.env.AUTH_HOST, scopes: c.options.scopes },
3137
- {
3138
- cta: {
3139
- description: 'Verify your session:',
3140
- commands: ['auth status'],
3141
- },
3142
- },
3143
- )
3144
- },
3145
- })
3146
- .command('logout', {
3147
- description: 'Log out of the service',
3148
- run(c) {
3149
- return c.ok({ loggedOut: true })
3150
- },
3151
- })
3152
- .command('status', {
3153
- description: 'Show authentication status',
3154
- output: z.object({ loggedIn: z.boolean(), hostname: z.string(), user: z.string() }),
3155
- run(c) {
3156
- return c.error({
3157
- code: 'NOT_AUTHENTICATED',
3158
- message: 'Not logged in',
3159
- retryable: false,
3160
- cta: { commands: ['auth login'] },
3161
- })
3162
- },
3163
- })
3164
-
3165
- const project = Cli.create('project', { description: 'Manage projects' })
3166
- .command('list', {
3167
- description: 'List projects',
3168
- options: z.object({
3169
- limit: z.number().default(20).describe('Max results'),
3170
- sort: z.enum(['name', 'created', 'updated']).default('name').describe('Sort field'),
3171
- archived: z.boolean().default(false).describe('Include archived'),
3172
- }),
3173
- alias: { limit: 'l', sort: 's' },
3174
-
3175
- output: z.object({
3176
- items: z.array(
3177
- z.object({
3178
- id: z.string(),
3179
- name: z.string(),
3180
- archived: z.boolean(),
3181
- }),
3182
- ),
3183
- total: z.number(),
3184
- }),
3185
- run(c) {
3186
- const items = [
3187
- { id: 'p1', name: 'Alpha', archived: false },
3188
- { id: 'p2', name: 'Beta', archived: true },
3189
- ].filter((p) => c.options.archived || !p.archived)
3190
- return c.ok(
3191
- { items, total: items.length },
3192
- {
3193
- cta: {
3194
- commands: items.map((p) => ({
3195
- command: `project get ${p.id}`,
3196
- description: `View "${p.name}"`,
3197
- })),
3198
- },
3199
- },
3200
- )
3201
- },
3202
- })
3203
- .command('get', {
3204
- description: 'Get a project by ID',
3205
- args: z.object({ id: z.string().describe('Project ID') }),
3206
- output: z.object({
3207
- id: z.string(),
3208
- name: z.string(),
3209
- description: z.string(),
3210
- members: z.array(z.object({ userId: z.string(), role: z.string() })),
3211
- }),
3212
- run(c) {
3213
- return c.ok({
3214
- id: c.args.id,
3215
- name: 'Alpha',
3216
- description: 'Main project',
3217
- members: [{ userId: 'u1', role: 'admin' }],
3218
- })
3219
- },
3220
- })
3221
- .command('create', {
3222
- description: 'Create a new project',
3223
- args: z.object({ name: z.string().describe('Project name') }),
3224
- options: z.object({
3225
- description: z.string().default('').describe('Project description'),
3226
- private: z.boolean().default(false).describe('Private project'),
3227
- }),
3228
- alias: { description: 'd' },
3229
-
3230
- output: z.object({ id: z.string(), url: z.string() }),
3231
- run(c) {
3232
- return c.ok(
3233
- { id: 'p-new', url: 'https://example.com/projects/p-new' },
3234
- {
3235
- cta: {
3236
- commands: [
3237
- { command: 'project get p-new', description: `View "${c.args.name}"` },
3238
- 'project list',
3239
- ],
3240
- },
3241
- },
3242
- )
3243
- },
3244
- })
3245
- .command('delete', {
3246
- description: 'Delete a project',
3247
- args: z.object({ id: z.string().describe('Project ID') }),
3248
- options: z.object({
3249
- force: z.boolean().default(false).describe('Skip confirmation'),
3250
- }),
3251
- alias: { force: 'f' },
3252
-
3253
- run(c) {
3254
- if (!c.options.force)
3255
- throw new Errors.IncurError({
3256
- code: 'CONFIRMATION_REQUIRED',
3257
- message: `Use --force to delete project ${c.args.id}`,
3258
- retryable: true,
3259
- })
3260
- return { deleted: true, id: c.args.id }
3261
- },
3262
- })
3263
-
3264
- const deploy = Cli.create('deploy', { description: 'Deployment commands' })
3265
- .command('create', {
3266
- description: 'Create a deployment',
3267
- args: z.object({ env: z.string().describe('Target environment') }),
3268
- options: z.object({
3269
- branch: z.string().default('main').describe('Branch to deploy'),
3270
- dryRun: z.boolean().default(false).describe('Dry run mode'),
3271
- }),
3272
- alias: { branch: 'b' },
3273
-
3274
- output: z.object({ deployId: z.string(), url: z.string(), status: z.string() }),
3275
- examples: [
3276
- { description: 'Deploy staging from main', args: { env: 'staging' } },
3277
- {
3278
- description: 'Dry run a production deploy',
3279
- args: { env: 'production' },
3280
- options: { branch: 'release', dryRun: true },
3281
- },
3282
- ],
3283
- run(c) {
3284
- return c.ok({
3285
- deployId: 'd-123',
3286
- url: `https://${c.args.env}.example.com`,
3287
- status: c.options.dryRun ? 'dry-run' : 'pending',
3288
- })
3289
- },
3290
- })
3291
- .command('status', {
3292
- description: 'Check deployment status',
3293
- args: z.object({ deployId: z.string().describe('Deployment ID') }),
3294
-
3295
- output: z.object({ deployId: z.string(), status: z.string(), progress: z.number() }),
3296
- run(c) {
3297
- return { deployId: c.args.deployId, status: 'running', progress: 75 }
3298
- },
3299
- })
3300
- .command('rollback', {
3301
- description: 'Rollback a deployment',
3302
- args: z.object({ deployId: z.string().describe('Deployment ID') }),
3303
-
3304
- run(c) {
3305
- return { rolledBack: true, deployId: c.args.deployId }
3306
- },
3307
- })
3308
-
3309
- project.command(deploy)
3310
-
3311
- const config = Cli.create('config', {
3312
- description: 'Show current configuration',
3313
- args: z.object({ key: z.string().optional().describe('Config key to show') }),
3314
- run(c) {
3315
- if (c.args.key) return { key: c.args.key, value: 'some-value' }
3316
- return { apiUrl: 'https://api.example.com', timeout: 30, debug: false }
3317
- },
3318
- })
3319
-
3320
- const cli = Cli.create('app', {
3321
- version: '3.5.0',
3322
- description: 'A comprehensive CLI application for testing.',
3323
- })
3324
-
3325
- cli.command('ping', {
3326
- description: 'Health check',
3327
- run() {
3328
- return { pong: true }
3329
- },
3330
- })
3331
-
3332
- cli.command('echo', {
3333
- description: 'Echo back arguments',
3334
- args: z.object({
3335
- message: z.string().describe('Message to echo'),
3336
- repeat: z.number().optional().describe('Times to repeat'),
3337
- }),
3338
- options: z.object({
3339
- upper: z.boolean().default(false).describe('Uppercase output'),
3340
- prefix: z.string().default('').describe('Prefix string'),
3341
- }),
3342
- alias: { upper: 'u', prefix: 'p' },
3343
- run(c) {
3344
- const count = c.args.repeat ?? 1
3345
- let msg = c.options.prefix ? `${c.options.prefix} ${c.args.message}` : c.args.message
3346
- if (c.options.upper) msg = msg.toUpperCase()
3347
- return { result: Array(count).fill(msg) }
3348
- },
3349
- })
3350
-
3351
- cli.command('slow', {
3352
- description: 'Async command',
3353
- async run() {
3354
- await new Promise((r) => setTimeout(r, 5))
3355
- return { done: true }
3356
- },
3357
- })
3358
-
3359
- cli.command('explode', {
3360
- description: 'Always fails',
3361
- run() {
3362
- throw new Error('kaboom')
3363
- },
3364
- })
3365
-
3366
- cli.command('explode-clac', {
3367
- description: 'Fails with IncurError',
3368
- run() {
3369
- throw new Errors.IncurError({
3370
- code: 'QUOTA_EXCEEDED',
3371
- message: 'Rate limit exceeded',
3372
- retryable: true,
3373
- hint: 'Wait 60 seconds',
3374
- })
3375
- },
3376
- })
3377
-
3378
- cli.command('validate-fail', {
3379
- description: 'Fails validation',
3380
- args: z.object({
3381
- email: z.string().email().describe('Email address'),
3382
- age: z.number().min(0).max(150).describe('Age'),
3383
- }),
3384
- run({ args }) {
3385
- return args
3386
- },
3387
- })
3388
-
3389
- cli.command('noop', {
3390
- description: 'Returns nothing',
3391
- run() {},
3392
- })
3393
-
3394
- cli.command('stream', {
3395
- description: 'Stream chunks',
3396
- async *run() {
3397
- yield { content: 'hello' }
3398
- yield { content: 'world' }
3399
- },
3400
- })
3401
-
3402
- cli.command('stream-text', {
3403
- description: 'Stream plain text',
3404
- async *run() {
3405
- yield 'hello'
3406
- yield 'world'
3407
- },
3408
- })
3409
-
3410
- cli.command('stream-ok', {
3411
- description: 'Stream with ok() return',
3412
- async *run({ ok }) {
3413
- yield { n: 1 }
3414
- yield { n: 2 }
3415
- return ok(undefined as any, { cta: { commands: ['ping'] } })
3416
- },
3417
- })
3418
-
3419
- cli.command('stream-error', {
3420
- description: 'Stream with mid-stream error',
3421
- async *run({ error }) {
3422
- yield { n: 1 }
3423
- return error({ code: 'STREAM_FAIL', message: 'broke mid-stream' })
3424
- },
3425
- })
3426
-
3427
- cli.command('stream-throw', {
3428
- description: 'Stream that throws',
3429
- async *run() {
3430
- yield { n: 1 }
3431
- throw new Error('stream kaboom')
3432
- },
3433
- })
3434
-
3435
- cli.command(auth)
3436
- cli.command(project)
3437
- cli.command(config)
3438
- cli.command('api', { description: 'Proxy to HTTP API', fetch: honoApp.fetch })
3439
-
3440
- return cli
3441
- }