@murphai/murph 1.3.1 → 1.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +808 -0
- package/config.schema.json +91 -40
- package/dist/bin.js +6 -4
- package/dist/bin.js.map +1 -1
- package/dist/cli-entry.d.ts +8 -1
- package/dist/cli-entry.d.ts.map +1 -1
- package/dist/cli-entry.js +79 -3
- package/dist/cli-entry.js.map +1 -1
- package/dist/commands/audit-command-helpers.d.ts.map +1 -1
- package/dist/commands/audit-command-helpers.js +7 -5
- package/dist/commands/audit-command-helpers.js.map +1 -1
- package/dist/commands/batch.d.ts +5 -5
- package/dist/commands/batch.d.ts.map +1 -1
- package/dist/commands/batch.js +2 -21
- package/dist/commands/batch.js.map +1 -1
- package/dist/commands/commons.d.ts.map +1 -1
- package/dist/commands/commons.js +2 -4
- package/dist/commands/commons.js.map +1 -1
- package/dist/commands/exercise.d.ts.map +1 -1
- package/dist/commands/exercise.js +16 -3
- package/dist/commands/exercise.js.map +1 -1
- package/dist/commands/experiment-progress-card-image.d.ts.map +1 -1
- package/dist/commands/experiment-progress-card-image.js +63 -12
- package/dist/commands/experiment-progress-card-image.js.map +1 -1
- package/dist/commands/experiment.d.ts.map +1 -1
- package/dist/commands/experiment.js +45 -5
- package/dist/commands/experiment.js.map +1 -1
- package/dist/commands/export-intake-read-helpers.d.ts.map +1 -1
- package/dist/commands/export-intake-read-helpers.js +2 -3
- package/dist/commands/export-intake-read-helpers.js.map +1 -1
- package/dist/commands/food.d.ts.map +1 -1
- package/dist/commands/food.js +1 -7
- package/dist/commands/food.js.map +1 -1
- package/dist/commands/habitat.d.ts.map +1 -1
- package/dist/commands/habitat.js +120 -9
- package/dist/commands/habitat.js.map +1 -1
- package/dist/commands/health-blood-test-save.d.ts.map +1 -1
- package/dist/commands/health-blood-test-save.js +42 -8
- package/dist/commands/health-blood-test-save.js.map +1 -1
- package/dist/commands/meal.d.ts.map +1 -1
- package/dist/commands/meal.js +4 -1
- package/dist/commands/meal.js.map +1 -1
- package/dist/commands/measurement.d.ts.map +1 -1
- package/dist/commands/measurement.js +3 -0
- package/dist/commands/measurement.js.map +1 -1
- package/dist/commands/murph-age.d.ts +9 -1
- package/dist/commands/murph-age.d.ts.map +1 -1
- package/dist/commands/murph-age.js +132 -7
- package/dist/commands/murph-age.js.map +1 -1
- package/dist/commands/public-validation-issue.d.ts +7 -0
- package/dist/commands/public-validation-issue.d.ts.map +1 -0
- package/dist/commands/public-validation-issue.js +7 -0
- package/dist/commands/public-validation-issue.js.map +1 -0
- package/dist/commands/scheduled-log.d.ts +12 -0
- package/dist/commands/scheduled-log.d.ts.map +1 -1
- package/dist/commands/scheduled-log.js +456 -106
- package/dist/commands/scheduled-log.js.map +1 -1
- package/dist/commands/wearables.d.ts +286 -0
- package/dist/commands/wearables.d.ts.map +1 -1
- package/dist/commands/wearables.js +33 -1
- package/dist/commands/wearables.js.map +1 -1
- package/dist/commands/workout-live.d.ts.map +1 -1
- package/dist/commands/workout-live.js +123 -42
- package/dist/commands/workout-live.js.map +1 -1
- package/dist/commands/workout-typed-options.d.ts +38 -0
- package/dist/commands/workout-typed-options.d.ts.map +1 -0
- package/dist/commands/workout-typed-options.js +90 -0
- package/dist/commands/workout-typed-options.js.map +1 -0
- package/dist/commands/workout.d.ts.map +1 -1
- package/dist/commands/workout.js +80 -73
- package/dist/commands/workout.js.map +1 -1
- package/dist/hosted-data-api-labels.d.ts.map +1 -1
- package/dist/hosted-data-api-labels.js +161 -30
- package/dist/hosted-data-api-labels.js.map +1 -1
- package/dist/incur-error-bridge.d.ts.map +1 -1
- package/dist/incur-error-bridge.js +7 -15
- package/dist/incur-error-bridge.js.map +1 -1
- package/dist/incur.generated.d.ts +22 -13
- package/dist/incur.generated.d.ts.map +1 -1
- package/dist/mapbox-address.d.ts.map +1 -1
- package/dist/mapbox-address.js +3 -4
- package/dist/mapbox-address.js.map +1 -1
- package/dist/mapbox-route-client.d.ts +2 -2
- package/dist/mapbox-route-client.d.ts.map +1 -1
- package/dist/mapbox-route-client.js +49 -12
- package/dist/mapbox-route-client.js.map +1 -1
- package/dist/mapbox-route-directions.d.ts.map +1 -1
- package/dist/mapbox-route-directions.js +0 -1
- package/dist/mapbox-route-directions.js.map +1 -1
- package/dist/mapbox-route-elevation.js +0 -1
- package/dist/mapbox-route-elevation.js.map +1 -1
- package/dist/mapbox-route-points.js +0 -2
- package/dist/mapbox-route-points.js.map +1 -1
- package/dist/mapbox-route.d.ts.map +1 -1
- package/dist/mapbox-route.js +1 -1
- package/dist/mapbox-route.js.map +1 -1
- package/dist/vault-cli-command-manifest.d.ts +304 -6
- package/dist/vault-cli-command-manifest.d.ts.map +1 -1
- package/dist/vault-cli-skill-hash.generated.d.ts +1 -1
- package/dist/vault-cli-skill-hash.generated.js +1 -1
- package/node_modules/@murphai/assistant-cli/dist/assistant/ui/ink.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-cli/dist/assistant/ui/ink.js +6 -2
- package/node_modules/@murphai/assistant-cli/dist/assistant/ui/ink.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/README.md +4 -3
- package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-controller.d.ts +15 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-controller.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-controller.js +121 -24
- package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-controller.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-journal.js +2 -2
- package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-journal.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/ask-continuation.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/ask-continuation.js +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/ask-continuation.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation/reply.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation/reply.js +55 -7
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation/reply.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation/run-loop.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation/run-loop.js +9 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation/run-loop.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation/shared.d.ts +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation/shared.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation/shared.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/cli-surface-contract.generated.json +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/codex-base-instructions.d.ts +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/codex-base-instructions.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/codex-base-instructions.js +7 -7
- package/node_modules/@murphai/assistant-engine/dist/assistant/codex-base-instructions.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn/planning.d.ts +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn/planning.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn/planning.js +123 -22
- package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn/planning.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn-runner.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn-runner.js +48 -19
- package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn-runner.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/context-snapshot.js +3 -7
- package/node_modules/@murphai/assistant-engine/dist/assistant/context-snapshot.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/execution.d.ts +5 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/execution.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/execution.js +24 -10
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/execution.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/schedule.d.ts +2 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/schedule.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/schedule.js +12 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/schedule.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/delivery-service.d.ts +5 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/delivery-service.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/delivery-service.js +9 -10
- package/node_modules/@murphai/assistant-engine/dist/assistant/delivery-service.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/execution-context.d.ts +41 -9
- package/node_modules/@murphai/assistant-engine/dist/assistant/execution-context.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/execution-context.js +9 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/execution-context.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/experiment-support-automations.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/experiment-support-automations.js +2 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/experiment-support-automations.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-tool-context.d.ts +3 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-tool-context.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-tool-context.js +8 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-tool-context.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/issue-reporting.d.ts +3 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/issue-reporting.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/issue-reporting.js +26 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/issue-reporting.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/local-service.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/local-service.js +687 -370
- package/node_modules/@murphai/assistant-engine/dist/assistant/local-service.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/managed-automations.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/managed-automations.js +54 -18
- package/node_modules/@murphai/assistant-engine/dist/assistant/managed-automations.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/model-behavior.d.ts +2 -3
- package/node_modules/@murphai/assistant-engine/dist/assistant/model-behavior.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/model-behavior.js +10 -9
- package/node_modules/@murphai/assistant-engine/dist/assistant/model-behavior.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/notification-turn.d.ts +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/notification-turn.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/notification-turn.js +146 -18
- package/node_modules/@murphai/assistant-engine/dist/assistant/notification-turn.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-followup-seed.d.ts +25 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-followup-seed.d.ts.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-followup-seed.js +72 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-followup-seed.js.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-state.d.ts +4 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-state.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-state.js +14 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-state.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/store.d.ts +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/store.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/store.js +8 -5
- package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/store.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/outbox.d.ts +4 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/outbox.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/outbox.js +8 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/outbox.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/private-completion-continuity.js +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/private-completion-continuity.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/providers/codex-cli.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/providers/codex-cli.js +25 -2
- package/node_modules/@murphai/assistant-engine/dist/assistant/providers/codex-cli.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/providers/helpers.d.ts +11 -3
- package/node_modules/@murphai/assistant-engine/dist/assistant/providers/helpers.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/providers/helpers.js +67 -176
- package/node_modules/@murphai/assistant-engine/dist/assistant/providers/helpers.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/providers/types.d.ts +17 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/providers/types.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/providers/types.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/reply-delivery-context.d.ts +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/reply-delivery-context.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/reply-delivery-context.js +10 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/reply-delivery-context.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/runtime-residue.d.ts +19 -4
- package/node_modules/@murphai/assistant-engine/dist/assistant/runtime-residue.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/runtime-residue.js +76 -40
- package/node_modules/@murphai/assistant-engine/dist/assistant/runtime-residue.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/service-contracts.d.ts +3 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/service-contracts.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/service-usage.d.ts +4 -2
- package/node_modules/@murphai/assistant-engine/dist/assistant/service-usage.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/service-usage.js +8 -7
- package/node_modules/@murphai/assistant-engine/dist/assistant/service-usage.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/shared.d.ts +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/shared.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/shared.js +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/shared.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/store/types.d.ts +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/store/types.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/store.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/store.js +6 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/store.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/system-prompt.d.ts +3 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/system-prompt.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/system-prompt.js +57 -29
- package/node_modules/@murphai/assistant-engine/dist/assistant/system-prompt.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-digest.d.ts +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-digest.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-digest.js +17 -3
- package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-digest.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-feedback.d.ts +4 -7
- package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-feedback.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-feedback.js +21 -6
- package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-feedback.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/turn-finalizer.d.ts +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/turn-finalizer.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/turn-finalizer.js +6 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/turn-finalizer.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/turn-input.d.ts +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/turn-input.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/usage-attribution.d.ts +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/usage-attribution.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/usage-attribution.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-ask.js +8 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-ask.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-cli-access.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-cli-access.js +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-cli-access.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/analyze-video-tool.d.ts +49 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/analyze-video-tool.d.ts.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/analyze-video-tool.js +387 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/analyze-video-tool.js.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-protocol.d.ts +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-protocol.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-protocol.js +12 -13
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-protocol.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-requests.d.ts +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-requests.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-requests.js +16 -5
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-requests.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-rpc.d.ts +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-rpc.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-rpc.js +2 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-rpc.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/command-family.d.ts +4 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/command-family.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/command-family.js +26 -13
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/command-family.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tool-catalog.d.ts +1024 -1091
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tool-catalog.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tool-catalog.js +354 -330
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tool-catalog.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/analyze-video.d.ts +50 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/analyze-video.d.ts.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/analyze-video.js +79 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/analyze-video.js.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation-model-input-schema.d.ts +4 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation-model-input-schema.d.ts.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation-model-input-schema.js +153 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation-model-input-schema.js.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation.d.ts +4 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation.js +29 -35
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/device.d.ts +4 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/device.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/device.js +43 -9
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/device.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/dynamic-tool-wrapper.d.ts +6 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/dynamic-tool-wrapper.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/dynamic-tool-wrapper.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/member-memory.d.ts +60 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/member-memory.d.ts.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/member-memory.js +91 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/member-memory.js.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/physical-notes.d.ts +41 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/physical-notes.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/physical-notes.js +85 -9
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/physical-notes.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools.d.ts +25 -2
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools.js +280 -89
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/failures.js +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/response-card-validation-feedback.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/response-card-validation-feedback.js +1 -3
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/response-card-validation-feedback.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/workout-delivery-context.d.ts +19 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/workout-delivery-context.d.ts.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/workout-delivery-context.js +203 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/workout-delivery-context.js.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex.d.ts +9 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex.js +220 -130
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-runtime-residue.d.ts +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-runtime-residue.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-runtime-residue.js +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-runtime-residue.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-skill-assets.d.ts +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-skill-assets.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-skill-assets.js +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-skill-assets.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/index.d.ts +2 -1
- package/node_modules/@murphai/assistant-engine/dist/index.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/index.js +1 -0
- package/node_modules/@murphai/assistant-engine/dist/index.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/skills/automatic-meal-capture/SKILL.md +111 -68
- package/node_modules/@murphai/assistant-engine/skills/behavior-followthrough/SKILL.md +0 -2
- package/node_modules/@murphai/assistant-engine/skills/daily-activity/SKILL.md +11 -4
- package/node_modules/@murphai/assistant-engine/skills/food-journal/SKILL.md +83 -22
- package/node_modules/@murphai/assistant-engine/skills/hosted-low-usage/SKILL.md +3 -3
- package/node_modules/@murphai/assistant-engine/skills/murph-family/SKILL.md +1 -1
- package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/SKILL.md +17 -11
- package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/daily-nutrition-card-goals.md +62 -34
- package/node_modules/@murphai/assistant-engine/skills/physical-notes/SKILL.md +47 -0
- package/node_modules/@murphai/assistant-engine/skills/shared/exercise-catalog-runtime.md +6 -0
- package/node_modules/@murphai/assistant-engine/skills/signup-link/SKILL.md +1 -1
- package/node_modules/@murphai/assistant-engine/skills/strength-training/SKILL.md +12 -5
- package/node_modules/@murphai/assistant-engine/skills/tracked-table/SKILL.md +156 -66
- package/node_modules/@murphai/core/dist/automation.d.ts.map +1 -1
- package/node_modules/@murphai/core/dist/automation.js +17 -9
- package/node_modules/@murphai/core/dist/automation.js.map +1 -1
- package/node_modules/@murphai/core/dist/bank/habitat.d.ts +2 -0
- package/node_modules/@murphai/core/dist/bank/habitat.d.ts.map +1 -1
- package/node_modules/@murphai/core/dist/bank/habitat.js +27 -0
- package/node_modules/@murphai/core/dist/bank/habitat.js.map +1 -1
- package/node_modules/@murphai/core/dist/bank/regimens.js +1 -1
- package/node_modules/@murphai/core/dist/bank/regimens.js.map +1 -1
- package/node_modules/@murphai/core/dist/domains/events/ledger.d.ts +21 -0
- package/node_modules/@murphai/core/dist/domains/events/ledger.d.ts.map +1 -1
- package/node_modules/@murphai/core/dist/domains/events/ledger.js +102 -8
- package/node_modules/@murphai/core/dist/domains/events/ledger.js.map +1 -1
- package/node_modules/@murphai/core/dist/domains/events.d.ts +2 -2
- package/node_modules/@murphai/core/dist/domains/events.d.ts.map +1 -1
- package/node_modules/@murphai/core/dist/domains/events.js +1 -1
- package/node_modules/@murphai/core/dist/domains/events.js.map +1 -1
- package/node_modules/@murphai/core/dist/history/api.d.ts.map +1 -1
- package/node_modules/@murphai/core/dist/history/api.js +18 -3
- package/node_modules/@murphai/core/dist/history/api.js.map +1 -1
- package/node_modules/@murphai/core/dist/index.d.ts +4 -2
- package/node_modules/@murphai/core/dist/index.d.ts.map +1 -1
- package/node_modules/@murphai/core/dist/index.js +3 -1
- package/node_modules/@murphai/core/dist/index.js.map +1 -1
- package/node_modules/@murphai/core/dist/mutations.d.ts +25 -2
- package/node_modules/@murphai/core/dist/mutations.d.ts.map +1 -1
- package/node_modules/@murphai/core/dist/mutations.js +1588 -78
- package/node_modules/@murphai/core/dist/mutations.js.map +1 -1
- package/node_modules/@murphai/core/dist/operations/index.d.ts +1 -1
- package/node_modules/@murphai/core/dist/operations/index.d.ts.map +1 -1
- package/node_modules/@murphai/core/dist/operations/index.js +1 -1
- package/node_modules/@murphai/core/dist/operations/index.js.map +1 -1
- package/node_modules/@murphai/core/dist/operations/write-batch.d.ts +2 -0
- package/node_modules/@murphai/core/dist/operations/write-batch.d.ts.map +1 -1
- package/node_modules/@murphai/core/dist/operations/write-batch.js +7 -0
- package/node_modules/@murphai/core/dist/operations/write-batch.js.map +1 -1
- package/node_modules/@murphai/core/dist/protocols.d.ts.map +1 -1
- package/node_modules/@murphai/core/dist/protocols.js +52 -9
- package/node_modules/@murphai/core/dist/protocols.js.map +1 -1
- package/node_modules/@murphai/core/dist/public-mutations.d.ts +1 -1
- package/node_modules/@murphai/core/dist/public-mutations.d.ts.map +1 -1
- package/node_modules/@murphai/core/dist/public-mutations.js +2 -2
- package/node_modules/@murphai/core/dist/public-mutations.js.map +1 -1
- package/node_modules/@murphai/core/dist/scheduled-logs.d.ts +3 -0
- package/node_modules/@murphai/core/dist/scheduled-logs.d.ts.map +1 -1
- package/node_modules/@murphai/core/dist/scheduled-logs.js +65 -29
- package/node_modules/@murphai/core/dist/scheduled-logs.js.map +1 -1
- package/node_modules/@murphai/device-syncd/README.md +140 -46
- package/node_modules/@murphai/device-syncd/dist/client.d.ts +14 -0
- package/node_modules/@murphai/device-syncd/dist/client.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/client.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/config/connect-routes.d.ts +4 -1
- package/node_modules/@murphai/device-syncd/dist/config/connect-routes.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/config/connect-routes.js +24 -2
- package/node_modules/@murphai/device-syncd/dist/config/connect-routes.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/config/junction-connect-sources.js +2 -2
- package/node_modules/@murphai/device-syncd/dist/config/junction-connect-sources.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/config/provider-manifests.d.ts +53 -0
- package/node_modules/@murphai/device-syncd/dist/config/provider-manifests.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/config/provider-manifests.js +13 -0
- package/node_modules/@murphai/device-syncd/dist/config/provider-manifests.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/connect-config.d.ts +1 -1
- package/node_modules/@murphai/device-syncd/dist/connect-config.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/connect-config.js +1 -1
- package/node_modules/@murphai/device-syncd/dist/connect-config.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/fitbit-migration.d.ts +57 -0
- package/node_modules/@murphai/device-syncd/dist/fitbit-migration.d.ts.map +1 -0
- package/node_modules/@murphai/device-syncd/dist/fitbit-migration.js +166 -0
- package/node_modules/@murphai/device-syncd/dist/fitbit-migration.js.map +1 -0
- package/node_modules/@murphai/device-syncd/dist/hosted-runtime.d.ts +43 -0
- package/node_modules/@murphai/device-syncd/dist/hosted-runtime.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/hosted-runtime.js +129 -5
- package/node_modules/@murphai/device-syncd/dist/hosted-runtime.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/junction-historical-backfill-progress.d.ts +3 -0
- package/node_modules/@murphai/device-syncd/dist/junction-historical-backfill-progress.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/junction-historical-backfill-progress.js +36 -16
- package/node_modules/@murphai/device-syncd/dist/junction-historical-backfill-progress.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/junction-inline-authority.d.ts +17 -2
- package/node_modules/@murphai/device-syncd/dist/junction-inline-authority.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/junction-inline-authority.js +99 -40
- package/node_modules/@murphai/device-syncd/dist/junction-inline-authority.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/junction-source-reconnect.d.ts +17 -0
- package/node_modules/@murphai/device-syncd/dist/junction-source-reconnect.d.ts.map +1 -0
- package/node_modules/@murphai/device-syncd/dist/junction-source-reconnect.js +45 -0
- package/node_modules/@murphai/device-syncd/dist/junction-source-reconnect.js.map +1 -0
- package/node_modules/@murphai/device-syncd/dist/junction-timeseries-progress.d.ts +8 -1
- package/node_modules/@murphai/device-syncd/dist/junction-timeseries-progress.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/junction-timeseries-progress.js +12 -1
- package/node_modules/@murphai/device-syncd/dist/junction-timeseries-progress.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/providers/junction-client.d.ts +7 -0
- package/node_modules/@murphai/device-syncd/dist/providers/junction-client.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/providers/junction-client.js +285 -46
- package/node_modules/@murphai/device-syncd/dist/providers/junction-client.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/providers/junction.d.ts +9 -0
- package/node_modules/@murphai/device-syncd/dist/providers/junction.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/providers/junction.js +2045 -367
- package/node_modules/@murphai/device-syncd/dist/providers/junction.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/public-account.d.ts +2 -0
- package/node_modules/@murphai/device-syncd/dist/public-account.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/public-account.js +96 -0
- package/node_modules/@murphai/device-syncd/dist/public-account.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/public-ingress.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/public-ingress.js +6 -4
- package/node_modules/@murphai/device-syncd/dist/public-ingress.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/service.d.ts +6 -2
- package/node_modules/@murphai/device-syncd/dist/service.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/service.js +385 -44
- package/node_modules/@murphai/device-syncd/dist/service.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/source-staleness.d.ts +15 -0
- package/node_modules/@murphai/device-syncd/dist/source-staleness.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/source-staleness.js +25 -1
- package/node_modules/@murphai/device-syncd/dist/source-staleness.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/store/jobs.d.ts +10 -1
- package/node_modules/@murphai/device-syncd/dist/store/jobs.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/store/jobs.js +95 -1
- package/node_modules/@murphai/device-syncd/dist/store/jobs.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/store/schema.d.ts +1 -1
- package/node_modules/@murphai/device-syncd/dist/store/schema.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/store/schema.js +25 -3
- package/node_modules/@murphai/device-syncd/dist/store/schema.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/store/sources.d.ts +24 -2
- package/node_modules/@murphai/device-syncd/dist/store/sources.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/store/sources.js +223 -14
- package/node_modules/@murphai/device-syncd/dist/store/sources.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/store.d.ts +13 -3
- package/node_modules/@murphai/device-syncd/dist/store.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/store.js +104 -22
- package/node_modules/@murphai/device-syncd/dist/store.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/types.d.ts +96 -9
- package/node_modules/@murphai/device-syncd/dist/types.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/types.js +4 -0
- package/node_modules/@murphai/device-syncd/dist/types.js.map +1 -1
- package/node_modules/@murphai/device-syncd/package.json +8 -0
- package/node_modules/@murphai/health-metrics/dist/definitions/activity.d.ts.map +1 -1
- package/node_modules/@murphai/health-metrics/dist/definitions/activity.js +66 -0
- package/node_modules/@murphai/health-metrics/dist/definitions/activity.js.map +1 -1
- package/node_modules/@murphai/health-metrics/dist/definitions/body.js +2 -2
- package/node_modules/@murphai/health-metrics/dist/definitions/body.js.map +1 -1
- package/node_modules/@murphai/health-metrics/dist/normalize.d.ts.map +1 -1
- package/node_modules/@murphai/health-metrics/dist/normalize.js +3 -0
- package/node_modules/@murphai/health-metrics/dist/normalize.js.map +1 -1
- package/node_modules/@murphai/health-metrics/dist/wearable-metric-catalog.d.ts +3 -1
- package/node_modules/@murphai/health-metrics/dist/wearable-metric-catalog.d.ts.map +1 -1
- package/node_modules/@murphai/health-metrics/dist/wearable-metric-catalog.js +5 -1
- package/node_modules/@murphai/health-metrics/dist/wearable-metric-catalog.js.map +1 -1
- package/node_modules/@murphai/health-metrics/dist/wearable-provider-catalog.d.ts +79 -0
- package/node_modules/@murphai/health-metrics/dist/wearable-provider-catalog.d.ts.map +1 -1
- package/node_modules/@murphai/health-metrics/dist/wearable-provider-catalog.js +19 -0
- package/node_modules/@murphai/health-metrics/dist/wearable-provider-catalog.js.map +1 -1
- package/node_modules/@murphai/importers/dist/core-port.d.ts +15 -1
- package/node_modules/@murphai/importers/dist/core-port.d.ts.map +1 -1
- package/node_modules/@murphai/importers/dist/core-port.js.map +1 -1
- package/node_modules/@murphai/importers/dist/create-importers.d.ts +9 -1
- package/node_modules/@murphai/importers/dist/create-importers.d.ts.map +1 -1
- package/node_modules/@murphai/importers/dist/create-importers.js +12 -2
- package/node_modules/@murphai/importers/dist/create-importers.js.map +1 -1
- package/node_modules/@murphai/importers/dist/device-providers/import-device-provider-snapshot.d.ts +17 -3
- package/node_modules/@murphai/importers/dist/device-providers/import-device-provider-snapshot.d.ts.map +1 -1
- package/node_modules/@murphai/importers/dist/device-providers/import-device-provider-snapshot.js +102 -8
- package/node_modules/@murphai/importers/dist/device-providers/import-device-provider-snapshot.js.map +1 -1
- package/node_modules/@murphai/importers/dist/device-providers/index.d.ts +5 -4
- package/node_modules/@murphai/importers/dist/device-providers/index.d.ts.map +1 -1
- package/node_modules/@murphai/importers/dist/device-providers/index.js +4 -3
- package/node_modules/@murphai/importers/dist/device-providers/index.js.map +1 -1
- package/node_modules/@murphai/importers/dist/device-providers/junction-bounded-features.d.ts +11 -1
- package/node_modules/@murphai/importers/dist/device-providers/junction-bounded-features.d.ts.map +1 -1
- package/node_modules/@murphai/importers/dist/device-providers/junction-bounded-features.js +420 -27
- package/node_modules/@murphai/importers/dist/device-providers/junction-bounded-features.js.map +1 -1
- package/node_modules/@murphai/importers/dist/device-providers/junction-origin.d.ts +1 -0
- package/node_modules/@murphai/importers/dist/device-providers/junction-origin.d.ts.map +1 -1
- package/node_modules/@murphai/importers/dist/device-providers/junction-origin.js +7 -2
- package/node_modules/@murphai/importers/dist/device-providers/junction-origin.js.map +1 -1
- package/node_modules/@murphai/importers/dist/device-providers/junction-resources.d.ts +4 -1
- package/node_modules/@murphai/importers/dist/device-providers/junction-resources.d.ts.map +1 -1
- package/node_modules/@murphai/importers/dist/device-providers/junction-resources.js +42 -1
- package/node_modules/@murphai/importers/dist/device-providers/junction-resources.js.map +1 -1
- package/node_modules/@murphai/importers/dist/device-providers/junction-timeseries-features.d.ts +79 -0
- package/node_modules/@murphai/importers/dist/device-providers/junction-timeseries-features.d.ts.map +1 -0
- package/node_modules/@murphai/importers/dist/device-providers/junction-timeseries-features.js +356 -0
- package/node_modules/@murphai/importers/dist/device-providers/junction-timeseries-features.js.map +1 -0
- package/node_modules/@murphai/importers/dist/device-providers/junction.d.ts +76 -3
- package/node_modules/@murphai/importers/dist/device-providers/junction.d.ts.map +1 -1
- package/node_modules/@murphai/importers/dist/device-providers/junction.js +1676 -347
- package/node_modules/@murphai/importers/dist/device-providers/junction.js.map +1 -1
- package/node_modules/@murphai/importers/dist/device-providers/shared-normalization.d.ts.map +1 -1
- package/node_modules/@murphai/importers/dist/device-providers/shared-normalization.js +1 -0
- package/node_modules/@murphai/importers/dist/device-providers/shared-normalization.js.map +1 -1
- package/node_modules/@murphai/importers/dist/device-providers/types.d.ts +9 -1
- package/node_modules/@murphai/importers/dist/device-providers/types.d.ts.map +1 -1
- package/node_modules/@murphai/importers/dist/index.d.ts +2 -2
- package/node_modules/@murphai/importers/dist/index.d.ts.map +1 -1
- package/node_modules/@murphai/importers/dist/index.js +1 -1
- package/node_modules/@murphai/importers/dist/index.js.map +1 -1
- package/node_modules/@murphai/inboxd/README.md +1 -1
- package/node_modules/@murphai/inboxd/dist/indexing/retention.d.ts +6 -0
- package/node_modules/@murphai/inboxd/dist/indexing/retention.d.ts.map +1 -1
- package/node_modules/@murphai/inboxd/dist/indexing/retention.js +64 -18
- package/node_modules/@murphai/inboxd/dist/indexing/retention.js.map +1 -1
- package/node_modules/@murphai/inboxd/dist/retention.d.ts +1 -1
- package/node_modules/@murphai/inboxd/dist/retention.d.ts.map +1 -1
- package/node_modules/@murphai/inboxd/dist/retention.js +1 -1
- package/node_modules/@murphai/inboxd/dist/retention.js.map +1 -1
- package/node_modules/@murphai/operator-config/dist/assistant-cli-contracts.d.ts +1 -0
- package/node_modules/@murphai/operator-config/dist/assistant-cli-contracts.d.ts.map +1 -1
- package/node_modules/@murphai/operator-config/dist/assistant-cli-contracts.js +5 -0
- package/node_modules/@murphai/operator-config/dist/assistant-cli-contracts.js.map +1 -1
- package/node_modules/@murphai/operator-config/dist/assistant-response-cards.d.ts +175 -152
- package/node_modules/@murphai/operator-config/dist/assistant-response-cards.d.ts.map +1 -1
- package/node_modules/@murphai/operator-config/dist/assistant-response-cards.js +62 -41
- package/node_modules/@murphai/operator-config/dist/assistant-response-cards.js.map +1 -1
- package/node_modules/@murphai/operator-config/dist/device-sync-client.d.ts.map +1 -1
- package/node_modules/@murphai/operator-config/dist/device-sync-client.js +1 -5
- package/node_modules/@murphai/operator-config/dist/device-sync-client.js.map +1 -1
- package/node_modules/@murphai/operator-config/dist/vault-cli-contracts.d.ts +66 -0
- package/node_modules/@murphai/operator-config/dist/vault-cli-contracts.d.ts.map +1 -1
- package/node_modules/@murphai/operator-config/dist/vault-cli-contracts.js +58 -0
- package/node_modules/@murphai/operator-config/dist/vault-cli-contracts.js.map +1 -1
- package/node_modules/@murphai/operator-config/dist/vault-cli-error-projection.d.ts +24 -0
- package/node_modules/@murphai/operator-config/dist/vault-cli-error-projection.d.ts.map +1 -0
- package/node_modules/@murphai/operator-config/dist/vault-cli-error-projection.js +219 -0
- package/node_modules/@murphai/operator-config/dist/vault-cli-error-projection.js.map +1 -0
- package/node_modules/@murphai/operator-config/dist/vault-cli-errors.d.ts.map +1 -1
- package/node_modules/@murphai/operator-config/dist/vault-cli-errors.js.map +1 -1
- package/node_modules/@murphai/operator-config/dist/workout-action-binding.d.ts +9 -0
- package/node_modules/@murphai/operator-config/dist/workout-action-binding.d.ts.map +1 -1
- package/node_modules/@murphai/operator-config/dist/workout-action-binding.js +48 -5
- package/node_modules/@murphai/operator-config/dist/workout-action-binding.js.map +1 -1
- package/node_modules/@murphai/operator-config/package.json +5 -0
- package/node_modules/@murphai/query/README.md +20 -5
- package/node_modules/@murphai/query/dist/browser-replica/build.d.ts +1 -1
- package/node_modules/@murphai/query/dist/browser-replica/build.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/browser-replica/build.js +25 -16
- package/node_modules/@murphai/query/dist/browser-replica/build.js.map +1 -1
- package/node_modules/@murphai/query/dist/browser-replica/json.d.ts +6 -0
- package/node_modules/@murphai/query/dist/browser-replica/json.d.ts.map +1 -0
- package/node_modules/@murphai/query/dist/browser-replica/json.js +103 -0
- package/node_modules/@murphai/query/dist/browser-replica/json.js.map +1 -0
- package/node_modules/@murphai/query/dist/browser-replica/shared.d.ts +1 -0
- package/node_modules/@murphai/query/dist/browser-replica/shared.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/browser-replica/source.d.ts +13 -0
- package/node_modules/@murphai/query/dist/browser-replica/source.d.ts.map +1 -0
- package/node_modules/@murphai/query/dist/browser-replica/source.js +45 -0
- package/node_modules/@murphai/query/dist/browser-replica/source.js.map +1 -0
- package/node_modules/@murphai/query/dist/browser-replica-server.d.ts +2 -0
- package/node_modules/@murphai/query/dist/browser-replica-server.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/browser-replica-server.js +2 -0
- package/node_modules/@murphai/query/dist/browser-replica-server.js.map +1 -1
- package/node_modules/@murphai/query/dist/health/blood-tests.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/health/blood-tests.js +3 -2
- package/node_modules/@murphai/query/dist/health/blood-tests.js.map +1 -1
- package/node_modules/@murphai/query/dist/health/canonical-collector.d.ts +11 -1
- package/node_modules/@murphai/query/dist/health/canonical-collector.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/health/canonical-collector.js +39 -16
- package/node_modules/@murphai/query/dist/health/canonical-collector.js.map +1 -1
- package/node_modules/@murphai/query/dist/health/entity-slices.d.ts +9 -3
- package/node_modules/@murphai/query/dist/health/entity-slices.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/health/entity-slices.js +6 -6
- package/node_modules/@murphai/query/dist/health/entity-slices.js.map +1 -1
- package/node_modules/@murphai/query/dist/health/immunizations.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/health/immunizations.js +14 -11
- package/node_modules/@murphai/query/dist/health/immunizations.js.map +1 -1
- package/node_modules/@murphai/query/dist/health/loaders.d.ts +21 -7
- package/node_modules/@murphai/query/dist/health/loaders.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/health/loaders.js +53 -15
- package/node_modules/@murphai/query/dist/health/loaders.js.map +1 -1
- package/node_modules/@murphai/query/dist/health/registries.d.ts +1 -0
- package/node_modules/@murphai/query/dist/health/registries.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/health/registries.js.map +1 -1
- package/node_modules/@murphai/query/dist/index.d.ts +4 -3
- package/node_modules/@murphai/query/dist/index.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/index.js +4 -3
- package/node_modules/@murphai/query/dist/index.js.map +1 -1
- package/node_modules/@murphai/query/dist/meal-nutrition.d.ts +1 -1
- package/node_modules/@murphai/query/dist/meal-nutrition.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/meal-nutrition.js +10 -3
- package/node_modules/@murphai/query/dist/meal-nutrition.js.map +1 -1
- package/node_modules/@murphai/query/dist/metrics/projection.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/metrics/projection.js +19 -6
- package/node_modules/@murphai/query/dist/metrics/projection.js.map +1 -1
- package/node_modules/@murphai/query/dist/murph-age.d.ts +5 -1
- package/node_modules/@murphai/query/dist/murph-age.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/murph-age.js +22 -8
- package/node_modules/@murphai/query/dist/murph-age.js.map +1 -1
- package/node_modules/@murphai/query/dist/projection/entity-store.js +4 -4
- package/node_modules/@murphai/query/dist/projection/entity-store.js.map +1 -1
- package/node_modules/@murphai/query/dist/projection/schema.d.ts +1 -1
- package/node_modules/@murphai/query/dist/projection/schema.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/projection/schema.js +3 -1
- package/node_modules/@murphai/query/dist/projection/schema.js.map +1 -1
- package/node_modules/@murphai/query/dist/projection/wearable-summary-compose.js +4 -0
- package/node_modules/@murphai/query/dist/projection/wearable-summary-compose.js.map +1 -1
- package/node_modules/@murphai/query/dist/projection/wearable-summary-projector.js +4 -0
- package/node_modules/@murphai/query/dist/projection/wearable-summary-projector.js.map +1 -1
- package/node_modules/@murphai/query/dist/query-visibility.d.ts +5 -0
- package/node_modules/@murphai/query/dist/query-visibility.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/query-visibility.js +11 -5
- package/node_modules/@murphai/query/dist/query-visibility.js.map +1 -1
- package/node_modules/@murphai/query/dist/read-model.d.ts +8 -0
- package/node_modules/@murphai/query/dist/read-model.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/read-model.js +11 -1
- package/node_modules/@murphai/query/dist/read-model.js.map +1 -1
- package/node_modules/@murphai/query/dist/scheduled-logs.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/scheduled-logs.js +55 -79
- package/node_modules/@murphai/query/dist/scheduled-logs.js.map +1 -1
- package/node_modules/@murphai/query/dist/vault-source.d.ts +22 -4
- package/node_modules/@murphai/query/dist/vault-source.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/vault-source.js +188 -59
- package/node_modules/@murphai/query/dist/vault-source.js.map +1 -1
- package/node_modules/@murphai/query/dist/wearables/candidates.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/wearables/candidates.js +26 -15
- package/node_modules/@murphai/query/dist/wearables/candidates.js.map +1 -1
- package/node_modules/@murphai/query/dist/wearables/public-output.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/wearables/public-output.js +6 -0
- package/node_modules/@murphai/query/dist/wearables/public-output.js.map +1 -1
- package/node_modules/@murphai/query/dist/wearables/source-health.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/wearables/source-health.js +4 -0
- package/node_modules/@murphai/query/dist/wearables/source-health.js.map +1 -1
- package/node_modules/@murphai/query/dist/wearables/types.d.ts +41 -4
- package/node_modules/@murphai/query/dist/wearables/types.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/wearables/types.js +2 -0
- package/node_modules/@murphai/query/dist/wearables/types.js.map +1 -1
- package/node_modules/@murphai/query/dist/wearables/workout-features.d.ts +5 -0
- package/node_modules/@murphai/query/dist/wearables/workout-features.d.ts.map +1 -0
- package/node_modules/@murphai/query/dist/wearables/workout-features.js +179 -0
- package/node_modules/@murphai/query/dist/wearables/workout-features.js.map +1 -0
- package/node_modules/@murphai/query/dist/wearables.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/wearables.js +23 -6
- package/node_modules/@murphai/query/dist/wearables.js.map +1 -1
- package/node_modules/@murphai/query/package.json +5 -0
- package/node_modules/@murphai/runtime-state/README.md +1 -1
- package/node_modules/@murphai/runtime-state/dist/assistant-runtime-issues.d.ts +4 -0
- package/node_modules/@murphai/runtime-state/dist/assistant-runtime-issues.d.ts.map +1 -1
- package/node_modules/@murphai/runtime-state/dist/assistant-runtime-issues.js +16 -3
- package/node_modules/@murphai/runtime-state/dist/assistant-runtime-issues.js.map +1 -1
- package/node_modules/@murphai/runtime-state/dist/hosted-bundles.d.ts +1 -0
- package/node_modules/@murphai/runtime-state/dist/hosted-bundles.d.ts.map +1 -1
- package/node_modules/@murphai/runtime-state/dist/hosted-bundles.js +31 -0
- package/node_modules/@murphai/runtime-state/dist/hosted-bundles.js.map +1 -1
- package/node_modules/@murphai/runtime-state/dist/hosted-email.d.ts +5 -0
- package/node_modules/@murphai/runtime-state/dist/hosted-email.d.ts.map +1 -1
- package/node_modules/@murphai/runtime-state/dist/hosted-email.js +10 -0
- package/node_modules/@murphai/runtime-state/dist/hosted-email.js.map +1 -1
- package/node_modules/@murphai/setup-cli/dist/incur-error-bridge.d.ts.map +1 -1
- package/node_modules/@murphai/setup-cli/dist/incur-error-bridge.js +6 -15
- package/node_modules/@murphai/setup-cli/dist/incur-error-bridge.js.map +1 -1
- package/node_modules/@murphai/vault-usecases/README.md +9 -0
- package/node_modules/@murphai/vault-usecases/dist/commands/query-record-command-helpers.d.ts +6 -0
- package/node_modules/@murphai/vault-usecases/dist/commands/query-record-command-helpers.d.ts.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/commands/query-record-command-helpers.js +49 -1
- package/node_modules/@murphai/vault-usecases/dist/commands/query-record-command-helpers.js.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/capture.d.ts.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/capture.js +22 -12
- package/node_modules/@murphai/vault-usecases/dist/usecases/capture.js.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/clinical-imports.d.ts.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/clinical-imports.js +1 -3
- package/node_modules/@murphai/vault-usecases/dist/usecases/clinical-imports.js.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/document-meal-read.d.ts.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/document-meal-read.js +24 -18
- package/node_modules/@murphai/vault-usecases/dist/usecases/document-meal-read.js.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/encounter.d.ts.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/encounter.js +1 -3
- package/node_modules/@murphai/vault-usecases/dist/usecases/encounter.js.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/event-record-mutations.d.ts +8 -0
- package/node_modules/@murphai/vault-usecases/dist/usecases/event-record-mutations.d.ts.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/event-record-mutations.js +56 -5
- package/node_modules/@murphai/vault-usecases/dist/usecases/event-record-mutations.js.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/exact-event-record.d.ts +20 -0
- package/node_modules/@murphai/vault-usecases/dist/usecases/exact-event-record.d.ts.map +1 -0
- package/node_modules/@murphai/vault-usecases/dist/usecases/exact-event-record.js +72 -0
- package/node_modules/@murphai/vault-usecases/dist/usecases/exact-event-record.js.map +1 -0
- package/node_modules/@murphai/vault-usecases/dist/usecases/experiment-journal-vault.d.ts +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/experiment-journal-vault.d.ts.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/experiment-journal-vault.js +42 -9
- package/node_modules/@murphai/vault-usecases/dist/usecases/experiment-journal-vault.js.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/explicit-health-family-services.d.ts.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/explicit-health-family-services.js +158 -24
- package/node_modules/@murphai/vault-usecases/dist/usecases/explicit-health-family-services.js.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/food.d.ts.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/food.js +98 -5
- package/node_modules/@murphai/vault-usecases/dist/usecases/food.js.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/integrated-services.d.ts.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/integrated-services.js +20 -4
- package/node_modules/@murphai/vault-usecases/dist/usecases/integrated-services.js.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/intervention-experiment-link.d.ts.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/intervention-experiment-link.js +49 -24
- package/node_modules/@murphai/vault-usecases/dist/usecases/intervention-experiment-link.js.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/measurement-read.d.ts.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/measurement-read.js +13 -11
- package/node_modules/@murphai/vault-usecases/dist/usecases/measurement-read.js.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/provider-event.d.ts.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/provider-event.js +18 -11
- package/node_modules/@murphai/vault-usecases/dist/usecases/provider-event.js.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/recipe.d.ts.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/recipe.js +43 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/recipe.js.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/shared.d.ts.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/shared.js +1 -3
- package/node_modules/@murphai/vault-usecases/dist/usecases/shared.js.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/vault-usecase-helpers.d.ts +2 -0
- package/node_modules/@murphai/vault-usecases/dist/usecases/vault-usecase-helpers.d.ts.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/vault-usecase-helpers.js +24 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/vault-usecase-helpers.js.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout-format.d.ts +2 -0
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout-format.d.ts.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-model.d.ts +36 -4
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-model.d.ts.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-model.js +48 -12
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-model.js.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-state.d.ts +14 -14
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-state.d.ts.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-state.js +84 -82
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-state.js.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live.d.ts +16 -4
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live.d.ts.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live.js +316 -79
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live.js.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout-read.d.ts.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout-read.js +19 -17
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout-read.js.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout.d.ts +20 -7
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout.d.ts.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout.js +56 -31
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout.js.map +1 -1
- package/node_modules/incur/dist/Cli.js +7 -32
- package/node_modules/incur/dist/Errors.d.ts +17 -0
- package/node_modules/incur/dist/Errors.js +23 -0
- package/node_modules/incur/dist/internal/command.d.ts +2 -0
- package/node_modules/incur/dist/internal/command.js +2 -6
- package/node_modules/incur/src/Cli.ts +11 -32
- package/node_modules/incur/src/Errors.ts +36 -0
- package/node_modules/incur/src/internal/command.ts +4 -6
- package/package.json +4 -4
- package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/daily-nutrition-card-safety.md +0 -211
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
import { redactSensitivePathSegments } from './text/shared.js';
|
|
2
|
+
import { VaultCliError } from './vault-cli-errors.js';
|
|
3
|
+
const MAX_VALIDATION_FIELDS = 12;
|
|
4
|
+
const MAX_VALIDATION_PATH_LENGTH = 160;
|
|
5
|
+
const MAX_ERROR_MESSAGE_LENGTH = 640;
|
|
6
|
+
const MAX_ERROR_HINT_LENGTH = 320;
|
|
7
|
+
const UNKNOWN_ERROR_MESSAGE = 'The command failed without a safe recoverable detail.';
|
|
8
|
+
/**
|
|
9
|
+
* Projects domain and unexpected failures into the bounded CLI envelope.
|
|
10
|
+
* VaultCliError context is the sole structured metadata source. An owner's
|
|
11
|
+
* explicit publicPath takes precedence over an ordinary schema issue path.
|
|
12
|
+
*/
|
|
13
|
+
export function projectVaultCliError(error) {
|
|
14
|
+
if (error instanceof VaultCliError) {
|
|
15
|
+
return projectKnownVaultCliError(error);
|
|
16
|
+
}
|
|
17
|
+
if (isUnknownRecord(error) && error.name === 'ZodError') {
|
|
18
|
+
return {
|
|
19
|
+
code: 'invalid_payload',
|
|
20
|
+
message: 'Input failed validation.',
|
|
21
|
+
retryable: false,
|
|
22
|
+
stage: 'validation',
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
return classifyUnhandledCliError(error);
|
|
26
|
+
}
|
|
27
|
+
function projectKnownVaultCliError(error) {
|
|
28
|
+
const retryable = typeof error.context?.retryable === 'boolean'
|
|
29
|
+
? error.context.retryable
|
|
30
|
+
: false;
|
|
31
|
+
const exitCode = typeof error.context?.exitCode === 'number' &&
|
|
32
|
+
Number.isSafeInteger(error.context.exitCode) &&
|
|
33
|
+
error.context.exitCode > 0
|
|
34
|
+
? error.context.exitCode
|
|
35
|
+
: undefined;
|
|
36
|
+
const fieldErrors = createValidationFieldErrors(error.context);
|
|
37
|
+
const stage = readKnownErrorStage(error.context?.stage)
|
|
38
|
+
?? (fieldErrors ? 'validation' : undefined);
|
|
39
|
+
const hint = readBoundedDiagnosticString(error.context?.hint, MAX_ERROR_HINT_LENGTH);
|
|
40
|
+
return {
|
|
41
|
+
code: error.code,
|
|
42
|
+
message: boundedDiagnosticMessage(error),
|
|
43
|
+
retryable,
|
|
44
|
+
...(exitCode === undefined ? {} : { exitCode }),
|
|
45
|
+
...(fieldErrors ? { fieldErrors } : {}),
|
|
46
|
+
...(hint === undefined ? {} : { hint }),
|
|
47
|
+
...(stage === undefined ? {} : { stage }),
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
function createValidationFieldErrors(details) {
|
|
51
|
+
if (!isUnknownRecord(details) || !Array.isArray(details.issues)) {
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
const fields = details.issues.flatMap((issue) => {
|
|
55
|
+
if (!isUnknownRecord(issue) ||
|
|
56
|
+
typeof issue.code !== 'string' ||
|
|
57
|
+
!/^(?:custom|invalid_(?:element|format|key|type|union|value)|not_multiple_of|too_(?:big|small)|unrecognized_keys)$/u.test(issue.code)) {
|
|
58
|
+
return [];
|
|
59
|
+
}
|
|
60
|
+
const path = resolveValidationPath(issue);
|
|
61
|
+
if (path === null) {
|
|
62
|
+
return [];
|
|
63
|
+
}
|
|
64
|
+
const expected = typeof issue.expected === 'string' &&
|
|
65
|
+
/^(?:array|boolean|null|number|object|string|undefined)$/u.test(issue.expected)
|
|
66
|
+
? issue.expected
|
|
67
|
+
: undefined;
|
|
68
|
+
return [{
|
|
69
|
+
code: issue.code,
|
|
70
|
+
path: normalizeValidationPath(path),
|
|
71
|
+
expected: expected ?? '',
|
|
72
|
+
received: 'invalid',
|
|
73
|
+
message: 'This field is invalid.',
|
|
74
|
+
}];
|
|
75
|
+
});
|
|
76
|
+
if (fields.length === 0) {
|
|
77
|
+
return undefined;
|
|
78
|
+
}
|
|
79
|
+
const boundedFields = fields.slice(0, MAX_VALIDATION_FIELDS);
|
|
80
|
+
const omittedFieldCount = fields.length - boundedFields.length;
|
|
81
|
+
if (omittedFieldCount > 0) {
|
|
82
|
+
boundedFields.push({
|
|
83
|
+
path: '$',
|
|
84
|
+
code: 'issues_omitted',
|
|
85
|
+
expected: '',
|
|
86
|
+
received: 'invalid',
|
|
87
|
+
message: `${omittedFieldCount} additional validation ${omittedFieldCount === 1 ? 'issue was' : 'issues were'} omitted.`,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
return boundedFields;
|
|
91
|
+
}
|
|
92
|
+
function resolveValidationPath(issue) {
|
|
93
|
+
if (issue.publicPath !== undefined) {
|
|
94
|
+
return Array.isArray(issue.publicPath) &&
|
|
95
|
+
issue.publicPath.every(isPublicPathSegment)
|
|
96
|
+
? issue.publicPath
|
|
97
|
+
: null;
|
|
98
|
+
}
|
|
99
|
+
return Array.isArray(issue.path) && issue.path.every(isPublicPathSegment)
|
|
100
|
+
? issue.path
|
|
101
|
+
: null;
|
|
102
|
+
}
|
|
103
|
+
function isPublicPathSegment(value) {
|
|
104
|
+
return (typeof value === 'string' &&
|
|
105
|
+
/^[A-Za-z_][A-Za-z0-9_-]*$/u.test(value)) || (typeof value === 'number' &&
|
|
106
|
+
Number.isSafeInteger(value) &&
|
|
107
|
+
value >= 0);
|
|
108
|
+
}
|
|
109
|
+
function normalizeValidationPath(path) {
|
|
110
|
+
const normalized = path.join('.') || '$';
|
|
111
|
+
const codePoints = Array.from(normalized);
|
|
112
|
+
return codePoints.length <= MAX_VALIDATION_PATH_LENGTH
|
|
113
|
+
? normalized
|
|
114
|
+
: `${codePoints.slice(0, MAX_VALIDATION_PATH_LENGTH - 1).join('')}…`;
|
|
115
|
+
}
|
|
116
|
+
function readKnownErrorStage(value) {
|
|
117
|
+
return typeof value === 'string' &&
|
|
118
|
+
/^(?:authorization|configuration|conflict|filesystem|integrity|persistence|read|render|response|transport|validation|write)$/u.test(value)
|
|
119
|
+
? value
|
|
120
|
+
: undefined;
|
|
121
|
+
}
|
|
122
|
+
function classifyUnhandledCliError(error) {
|
|
123
|
+
const nodeCode = readErrorCode(error);
|
|
124
|
+
const message = boundedDiagnosticMessage(error);
|
|
125
|
+
if (nodeCode === 'ENOENT') {
|
|
126
|
+
return {
|
|
127
|
+
code: 'not_found',
|
|
128
|
+
message,
|
|
129
|
+
retryable: false,
|
|
130
|
+
stage: 'filesystem',
|
|
131
|
+
hint: 'Check the input path and retry the command.',
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
if (nodeCode === 'EACCES' || nodeCode === 'EPERM') {
|
|
135
|
+
return {
|
|
136
|
+
code: 'permission_denied',
|
|
137
|
+
message,
|
|
138
|
+
retryable: false,
|
|
139
|
+
stage: 'filesystem',
|
|
140
|
+
hint: 'Check the file permissions before retrying.',
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
if (nodeCode === 'EISDIR' || nodeCode === 'ENOTDIR') {
|
|
144
|
+
return {
|
|
145
|
+
code: 'invalid_path',
|
|
146
|
+
message,
|
|
147
|
+
retryable: false,
|
|
148
|
+
stage: 'filesystem',
|
|
149
|
+
hint: 'Check whether the option expects a file or a directory.',
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
if (nodeCode === 'ENOSPC') {
|
|
153
|
+
return {
|
|
154
|
+
code: 'storage_unavailable',
|
|
155
|
+
message,
|
|
156
|
+
retryable: false,
|
|
157
|
+
stage: 'filesystem',
|
|
158
|
+
hint: 'Free storage space before retrying.',
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
if (nodeCode === 'VAULT_INVALID_INPUT') {
|
|
162
|
+
return {
|
|
163
|
+
code: nodeCode,
|
|
164
|
+
message,
|
|
165
|
+
retryable: false,
|
|
166
|
+
stage: 'validation',
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
return {
|
|
170
|
+
code: readBoundedErrorCode(nodeCode) ?? 'UNKNOWN',
|
|
171
|
+
message,
|
|
172
|
+
retryable: false,
|
|
173
|
+
stage: 'command',
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
function boundedDiagnosticMessage(error) {
|
|
177
|
+
const message = error instanceof Error
|
|
178
|
+
? error.message
|
|
179
|
+
: isUnknownRecord(error) && typeof error.message === 'string'
|
|
180
|
+
? error.message
|
|
181
|
+
: typeof error === 'string'
|
|
182
|
+
? error
|
|
183
|
+
: null;
|
|
184
|
+
return readBoundedDiagnosticString(message, MAX_ERROR_MESSAGE_LENGTH)
|
|
185
|
+
?? UNKNOWN_ERROR_MESSAGE;
|
|
186
|
+
}
|
|
187
|
+
function readBoundedDiagnosticString(value, maximumLength) {
|
|
188
|
+
if (typeof value !== 'string') {
|
|
189
|
+
return undefined;
|
|
190
|
+
}
|
|
191
|
+
const normalized = redactCredentialShapes(redactSensitivePathSegments(value.trim()));
|
|
192
|
+
if (normalized.length === 0) {
|
|
193
|
+
return undefined;
|
|
194
|
+
}
|
|
195
|
+
const codePoints = Array.from(normalized);
|
|
196
|
+
return codePoints.length <= maximumLength
|
|
197
|
+
? normalized
|
|
198
|
+
: `${codePoints.slice(0, maximumLength - 1).join('')}…`;
|
|
199
|
+
}
|
|
200
|
+
function redactCredentialShapes(value) {
|
|
201
|
+
return value
|
|
202
|
+
.replace(/\b(Bearer|Basic)\s+[^\s,;]+/giu, '$1 <REDACTED_CREDENTIAL>')
|
|
203
|
+
.replace(/\b((?:api[-_ ]?key|access[-_ ]?token|authorization|password|secret)\s*[:=]\s*)[^\s,;]+/giu, '$1<REDACTED_CREDENTIAL>');
|
|
204
|
+
}
|
|
205
|
+
function readBoundedErrorCode(value) {
|
|
206
|
+
return value !== null && /^[A-Za-z0-9_.:-]{1,96}$/u.test(value)
|
|
207
|
+
? value
|
|
208
|
+
: undefined;
|
|
209
|
+
}
|
|
210
|
+
function readErrorCode(error) {
|
|
211
|
+
if (!isUnknownRecord(error)) {
|
|
212
|
+
return null;
|
|
213
|
+
}
|
|
214
|
+
return typeof error.code === 'string' ? error.code : null;
|
|
215
|
+
}
|
|
216
|
+
function isUnknownRecord(value) {
|
|
217
|
+
return typeof value === 'object' && value !== null;
|
|
218
|
+
}
|
|
219
|
+
//# sourceMappingURL=vault-cli-error-projection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vault-cli-error-projection.js","sourceRoot":"","sources":["../src/vault-cli-error-projection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vault-cli-errors.d.ts","sourceRoot":"","sources":["../src/vault-cli-errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;AAEtE,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAA;IACtC,SAAkB,OAAO,EAAE,MAAM,CAAA;IAEjC,
|
|
1
|
+
{"version":3,"file":"vault-cli-errors.d.ts","sourceRoot":"","sources":["../src/vault-cli-errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;AAEtE,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAA;IACtC,SAAkB,OAAO,EAAE,MAAM,CAAA;IAEjC,YACE,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,oBAAoB,EAO/B;CACF;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CA+CrE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vault-cli-errors.js","sourceRoot":"","sources":["../src/vault-cli-errors.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,aAAc,SAAQ,KAAK;IAC7B,IAAI,CAAQ;IACZ,OAAO,CAAsB;IACpB,OAAO,CAAQ;IAEjC,
|
|
1
|
+
{"version":3,"file":"vault-cli-errors.js","sourceRoot":"","sources":["../src/vault-cli-errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
import type { WorkoutExercise, WorkoutSession } from '@murphai/contracts';
|
|
2
2
|
export declare function hasAmbiguousWorkoutActionExerciseCoordinates(workout: Pick<WorkoutSession, 'exercises'>): boolean;
|
|
3
3
|
export declare function deriveWorkoutActionBinding(workoutEntityId: string, workout: Pick<WorkoutSession, 'exercises' | 'lastMemberActionId'>): string;
|
|
4
|
+
export declare function workoutActionBindingMatchesCurrentState(workoutEntityId: string, workout: Pick<WorkoutSession, 'exercises' | 'lastMemberActionId'>, binding: string): boolean;
|
|
5
|
+
/**
|
|
6
|
+
* Matches an authenticated read to its workout without weakening writes.
|
|
7
|
+
* New bindings expose only their stable digest prefix; legacy cards are
|
|
8
|
+
* readable only at current state or from the initial pre-action generation.
|
|
9
|
+
*/
|
|
10
|
+
export declare function workoutActionBindingTargetsWorkout(workoutEntityId: string, workout: Pick<WorkoutSession, 'exercises' | 'lastMemberActionId'>, binding: string): boolean;
|
|
11
|
+
/** Compatibility reader for cards emitted before the composite V5 binding. */
|
|
12
|
+
export declare function deriveLegacyWorkoutActionBindingV4(workoutEntityId: string, workout: Pick<WorkoutSession, 'exercises' | 'lastMemberActionId'>): string;
|
|
4
13
|
export declare function deriveWorkoutSetRemovalBinding(workoutEntityId: string, exercises: WorkoutExercise[]): string;
|
|
5
14
|
//# sourceMappingURL=workout-action-binding.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workout-action-binding.d.ts","sourceRoot":"","sources":["../src/workout-action-binding.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAc,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"workout-action-binding.d.ts","sourceRoot":"","sources":["../src/workout-action-binding.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAc,MAAM,oBAAoB,CAAA;AAiCrF,wBAAgB,4CAA4C,CAC1D,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,GACzC,OAAO,CAUT;AAED,wBAAgB,0BAA0B,CACxC,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,GAAG,oBAAoB,CAAC,GAChE,MAAM,CAeR;AAED,wBAAgB,uCAAuC,CACrD,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,GAAG,oBAAoB,CAAC,EACjE,OAAO,EAAE,MAAM,GACd,OAAO,CAMT;AAED;;;;GAIG;AACH,wBAAgB,kCAAkC,CAChD,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,GAAG,oBAAoB,CAAC,EACjE,OAAO,EAAE,MAAM,GACd,OAAO,CAUT;AAED,8EAA8E;AAC9E,wBAAgB,kCAAkC,CAChD,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,GAAG,oBAAoB,CAAC,GAChE,MAAM,CAMR;AAyBD,wBAAgB,8BAA8B,CAC5C,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,eAAe,EAAE,GAC3B,MAAM,CAsCR"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { createHash } from 'node:crypto';
|
|
2
|
+
const WORKOUT_ACTION_BINDING_PATTERN = /^[0-9a-f]{64}$/u;
|
|
2
3
|
function projectWorkoutActionExerciseCoordinate(exercise) {
|
|
3
4
|
return {
|
|
4
5
|
groupId: exercise.groupId ?? null,
|
|
6
|
+
memberRepsPerSet: exercise.memberRepsPerSet ?? null,
|
|
5
7
|
mode: exercise.mode ?? null,
|
|
6
8
|
name: exercise.name,
|
|
7
9
|
note: exercise.note ?? null,
|
|
10
|
+
setPlanIsFinite: exercise.setPlanIsFinite ?? null,
|
|
8
11
|
sets: exercise.sets
|
|
9
12
|
.slice()
|
|
10
13
|
.sort((left, right) => left.order - right.order)
|
|
@@ -27,25 +30,63 @@ export function hasAmbiguousWorkoutActionExerciseCoordinates(workout) {
|
|
|
27
30
|
return false;
|
|
28
31
|
}
|
|
29
32
|
export function deriveWorkoutActionBinding(workoutEntityId, workout) {
|
|
30
|
-
const positionalIdentity = workout.exercises
|
|
33
|
+
const positionalIdentity = workoutActionPositionalIdentity(workout.exercises);
|
|
34
|
+
const lookup = createHash('sha256')
|
|
35
|
+
.update(`workout-action-lookup:v1:${workoutEntityId}:${JSON.stringify(positionalIdentity)}`)
|
|
36
|
+
.digest('hex')
|
|
37
|
+
.slice(0, 32);
|
|
38
|
+
const state = createHash('sha256')
|
|
39
|
+
.update(`workout-action:v5:${workoutEntityId}:${workout.lastMemberActionId ?? ''}:${JSON.stringify(positionalIdentity)}`)
|
|
40
|
+
.digest('hex')
|
|
41
|
+
.slice(0, 32);
|
|
42
|
+
return `${lookup}${state}`;
|
|
43
|
+
}
|
|
44
|
+
export function workoutActionBindingMatchesCurrentState(workoutEntityId, workout, binding) {
|
|
45
|
+
return binding === deriveWorkoutActionBinding(workoutEntityId, workout)
|
|
46
|
+
|| binding === deriveLegacyWorkoutActionBindingV4(workoutEntityId, workout);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Matches an authenticated read to its workout without weakening writes.
|
|
50
|
+
* New bindings expose only their stable digest prefix; legacy cards are
|
|
51
|
+
* readable only at current state or from the initial pre-action generation.
|
|
52
|
+
*/
|
|
53
|
+
export function workoutActionBindingTargetsWorkout(workoutEntityId, workout, binding) {
|
|
54
|
+
if (!WORKOUT_ACTION_BINDING_PATTERN.test(binding))
|
|
55
|
+
return false;
|
|
56
|
+
const lookup = deriveWorkoutActionBinding(workoutEntityId, workout).slice(0, 32);
|
|
57
|
+
if (binding.startsWith(lookup))
|
|
58
|
+
return true;
|
|
59
|
+
return binding === deriveLegacyWorkoutActionBindingV4(workoutEntityId, workout)
|
|
60
|
+
|| binding === deriveLegacyWorkoutActionBindingV4(workoutEntityId, {
|
|
61
|
+
exercises: workout.exercises,
|
|
62
|
+
lastMemberActionId: undefined,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
/** Compatibility reader for cards emitted before the composite V5 binding. */
|
|
66
|
+
export function deriveLegacyWorkoutActionBindingV4(workoutEntityId, workout) {
|
|
67
|
+
return createHash('sha256')
|
|
68
|
+
.update(`workout-action:v4:${workoutEntityId}:${workout.lastMemberActionId ?? ''}:${JSON.stringify(workoutActionPositionalIdentity(workout.exercises))}`)
|
|
69
|
+
.digest('hex');
|
|
70
|
+
}
|
|
71
|
+
function workoutActionPositionalIdentity(exercises) {
|
|
72
|
+
return exercises
|
|
31
73
|
.slice()
|
|
32
74
|
.sort((left, right) => left.order - right.order)
|
|
33
75
|
.map((exercise) => {
|
|
34
76
|
const coordinate = projectWorkoutActionExerciseCoordinate(exercise);
|
|
35
77
|
return {
|
|
36
78
|
groupId: coordinate.groupId,
|
|
79
|
+
memberRepsPerSet: coordinate.memberRepsPerSet,
|
|
37
80
|
mode: coordinate.mode,
|
|
38
81
|
name: coordinate.name,
|
|
39
82
|
note: coordinate.note,
|
|
40
83
|
order: exercise.order,
|
|
84
|
+
setPlanIsFinite: coordinate.setPlanIsFinite,
|
|
41
85
|
sets: coordinate.sets,
|
|
42
86
|
sourceExerciseId: coordinate.sourceExerciseId,
|
|
43
87
|
unitOverride: coordinate.unitOverride,
|
|
44
88
|
};
|
|
45
89
|
});
|
|
46
|
-
return createHash('sha256')
|
|
47
|
-
.update(`workout-action:v3:${workoutEntityId}:${workout.lastMemberActionId ?? ''}:${JSON.stringify(positionalIdentity)}`)
|
|
48
|
-
.digest('hex');
|
|
49
90
|
}
|
|
50
91
|
export function deriveWorkoutSetRemovalBinding(workoutEntityId, exercises) {
|
|
51
92
|
const canonicalExercises = exercises
|
|
@@ -53,10 +94,12 @@ export function deriveWorkoutSetRemovalBinding(workoutEntityId, exercises) {
|
|
|
53
94
|
.sort((left, right) => left.order - right.order)
|
|
54
95
|
.map((exercise) => ({
|
|
55
96
|
groupId: exercise.groupId ?? null,
|
|
97
|
+
memberRepsPerSet: exercise.memberRepsPerSet ?? null,
|
|
56
98
|
mode: exercise.mode ?? null,
|
|
57
99
|
name: exercise.name,
|
|
58
100
|
note: exercise.note ?? null,
|
|
59
101
|
order: exercise.order,
|
|
102
|
+
setPlanIsFinite: exercise.setPlanIsFinite ?? null,
|
|
60
103
|
sets: exercise.sets
|
|
61
104
|
.slice()
|
|
62
105
|
.sort((left, right) => left.order - right.order)
|
|
@@ -78,7 +121,7 @@ export function deriveWorkoutSetRemovalBinding(workoutEntityId, exercises) {
|
|
|
78
121
|
unitOverride: exercise.unitOverride ?? null,
|
|
79
122
|
}));
|
|
80
123
|
return createHash('sha256')
|
|
81
|
-
.update(`workout-set-removal:
|
|
124
|
+
.update(`workout-set-removal:v2:${workoutEntityId}:${JSON.stringify(canonicalExercises)}`)
|
|
82
125
|
.digest('hex');
|
|
83
126
|
}
|
|
84
127
|
//# sourceMappingURL=workout-action-binding.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workout-action-binding.js","sourceRoot":"","sources":["../src/workout-action-binding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"workout-action-binding.js","sourceRoot":"","sources":["../src/workout-action-binding.ts"],"names":[],"mappings":"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"}
|
|
@@ -154,6 +154,11 @@
|
|
|
154
154
|
"import": "./dist/vault-cli-errors.js",
|
|
155
155
|
"default": "./dist/vault-cli-errors.js"
|
|
156
156
|
},
|
|
157
|
+
"./vault-cli-error-projection": {
|
|
158
|
+
"types": "./dist/vault-cli-error-projection.d.ts",
|
|
159
|
+
"import": "./dist/vault-cli-error-projection.js",
|
|
160
|
+
"default": "./dist/vault-cli-error-projection.js"
|
|
161
|
+
},
|
|
157
162
|
"./assistant/delivery-failure": {
|
|
158
163
|
"types": "./dist/assistant/delivery-failure.d.ts",
|
|
159
164
|
"import": "./dist/assistant/delivery-failure.js",
|
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
# `@murphai/query`
|
|
2
2
|
|
|
3
|
-
Workspace-private read-helper, filter, derived-retrieval, and export-pack surface over canonical vault state. Query code must not mutate canonical vault data. It owns the rebuildable local query projection at `.runtime/projections/query.sqlite`, which backs
|
|
3
|
+
Workspace-private read-helper, filter, derived-retrieval, and export-pack surface over canonical vault state. Query code must not mutate canonical vault data. It owns the rebuildable local query projection at `.runtime/projections/query.sqlite`, which backs cross-family, aggregate, derived, and lexical-search reads.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
Exact and family-local reads must not rebuild or hydrate that shared projection.
|
|
6
|
+
Use core-owned exact readers when the canonical owner exposes one, or use
|
|
7
|
+
`resolveCanonicalEntityInFamily()` / `readCanonicalEntityFamilySource()` for a
|
|
8
|
+
bounded query-shaped family read. Alias resolution stays inside the selected
|
|
9
|
+
family, and exact canonical ids retain precedence over aliases. Collection
|
|
10
|
+
reads that still need projection freshness should use filtered APIs such as
|
|
11
|
+
`listCanonicalEntities()` rather than materializing the complete vault model.
|
|
12
|
+
|
|
13
|
+
Narrow health collection reads should query that projection by family/kind/date
|
|
14
|
+
before decoding records. Exact blood-test and immunization lookups use the
|
|
15
|
+
bounded event-family source reader so a stale projection cannot turn one-record
|
|
16
|
+
lookup into a whole-vault rebuild.
|
|
9
17
|
|
|
10
18
|
The first retrieval milestone now lives here too: lexical `searchVault()` over the sparse read model plus `buildTimeline()` for descending journal/event/display-grade sample-summary context.
|
|
11
19
|
|
|
@@ -19,6 +27,13 @@ or biomarker alias, so it cannot silently alias or aggregate with provider HRV.
|
|
|
19
27
|
|
|
20
28
|
Root wearable summary APIs should use the runtime projection helpers such as `summarizeWearableLatestRuntime()` and `summarizeWearableActivityRuntime()`. The lower-level read-model helpers in `src/wearables.ts` are package-internal and expect a full raw/debug read model or an intentionally full source model, not the default `readVault()` projection.
|
|
21
29
|
|
|
30
|
+
Junction workout-stream facets are grouped by their internal hashed workout
|
|
31
|
+
identity during projection rebuild and stored inside the existing
|
|
32
|
+
provider-scoped activity summary rows. The runtime activity read stays
|
|
33
|
+
date/provider-filtered and never hydrates `query_entities` to answer workout
|
|
34
|
+
feature questions. Public power keys end in `Watts`, speed keys end in `Mps`,
|
|
35
|
+
and raw workout/source-instance identifiers remain projection-internal.
|
|
36
|
+
|
|
22
37
|
Meal nutrition has two intentionally separate reads. `readMealNutritionTotals()`
|
|
23
38
|
keeps the compact five-metric card contract, while `readMealNutrientTotals()`
|
|
24
39
|
returns water plus the bounded supported micronutrient catalog only when a
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { type BrowserVaultReplica, type CreateBrowserVaultReplicaInput } from "./shared.ts";
|
|
2
2
|
export declare function createBrowserVaultReplica(input: CreateBrowserVaultReplicaInput): Promise<BrowserVaultReplica>;
|
|
3
|
-
export declare function hashBrowserVaultReplicaData(replica: BrowserVaultReplica): Promise<string>;
|
|
3
|
+
export declare function hashBrowserVaultReplicaData(replica: BrowserVaultReplica, signal?: AbortSignal): Promise<string>;
|
|
4
4
|
//# sourceMappingURL=build.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/browser-replica/build.ts"],"names":[],"mappings":"AA0BA,OAAO,EAeL,KAAK,mBAAmB,EAIxB,KAAK,8BAA8B,EACpC,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/browser-replica/build.ts"],"names":[],"mappings":"AA0BA,OAAO,EAeL,KAAK,mBAAmB,EAIxB,KAAK,8BAA8B,EACpC,MAAM,aAAa,CAAC;AAarB,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,8BAA8B,GACpC,OAAO,CAAC,mBAAmB,CAAC,CAwG9B;AAaD,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,mBAAmB,EAC5B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,CAAC,CA4BjB"}
|
|
@@ -15,7 +15,9 @@ import { toBrowserVaultLabResultRows } from "./lab-results.js";
|
|
|
15
15
|
import { projectBrowserTrainingSession } from "./training.js";
|
|
16
16
|
import { buildBrowserVaultExperimentRunCards } from "./experiment-run-cards.js";
|
|
17
17
|
import { createBrowserVaultProjectionQueryClient } from "./query.js";
|
|
18
|
+
import { stringifyJsonCooperatively } from "./json.js";
|
|
18
19
|
export async function createBrowserVaultReplica(input) {
|
|
20
|
+
input.signal?.throwIfAborted();
|
|
19
21
|
const generatedAt = input.generatedAt
|
|
20
22
|
? requireIsoDateTime(input.generatedAt, "Browser vault replica generatedAt")
|
|
21
23
|
: new Date().toISOString();
|
|
@@ -27,6 +29,7 @@ export async function createBrowserVaultReplica(input) {
|
|
|
27
29
|
const timelineRows = buildTimeline(defaultProjectedVault, { limit: TIMELINE_LIMIT })
|
|
28
30
|
.map(projectTimelineRow);
|
|
29
31
|
const weeklySampleSummaries = projectWeeklySampleSummaries(defaultProjectedVault, generatedAt);
|
|
32
|
+
await yieldToBrowserVaultReplicaCancellation(input.signal);
|
|
30
33
|
const allMetricPoints = input.metricPoints;
|
|
31
34
|
const requestedMetrics = collectRequestedBrowserVaultMetrics(defaultProjectedVault.entities);
|
|
32
35
|
const explicitRequestedMetrics = collectExplicitBrowserVaultMetrics(defaultProjectedVault.entities);
|
|
@@ -38,11 +41,13 @@ export async function createBrowserVaultReplica(input) {
|
|
|
38
41
|
(point.effectiveDate >= cutoff ||
|
|
39
42
|
isAnchoredBrowserMetricPoint(point, anchoredMetricRecords) ||
|
|
40
43
|
isBrowserVaultRequestedMetricPoint(point, explicitRequestedMetrics)));
|
|
44
|
+
await yieldToBrowserVaultReplicaCancellation(input.signal);
|
|
41
45
|
const metricRows = toBrowserVaultMetricRows({ points: metricPoints });
|
|
42
46
|
const labResultRows = toBrowserVaultLabResultRows({
|
|
43
47
|
entities: defaultProjectedVault.entities,
|
|
44
48
|
points: allMetricPoints,
|
|
45
49
|
});
|
|
50
|
+
await yieldToBrowserVaultReplicaCancellation(input.signal);
|
|
46
51
|
const metricRowPointIds = new Set(metricRows.flatMap((row) => row.pointIds));
|
|
47
52
|
const metricSelectionRows = createBrowserVaultMetricSelectionRows({
|
|
48
53
|
generatedAt,
|
|
@@ -54,6 +59,8 @@ export async function createBrowserVaultReplica(input) {
|
|
|
54
59
|
const sourceHealthRows = summarizeWearableSourceHealth(defaultProjectedVault, { limit: SOURCE_HEALTH_LIMIT })
|
|
55
60
|
.map(projectSourceHealthRow);
|
|
56
61
|
const wearableSummaryBundle = buildWearableSummaryBundle(input.vault);
|
|
62
|
+
const personalPatterns = buildPersonalPatternReportFromWearableBundleAndMetricPoints(input.vault, wearableSummaryBundle, allMetricPoints, { asOf: generatedAt });
|
|
63
|
+
await yieldToBrowserVaultReplicaCancellation(input.signal);
|
|
57
64
|
const replicaWithoutVersion = {
|
|
58
65
|
assistantSummary: projectWearableAssistantSummary(buildWearableAssistantSummary(defaultProjectedVault)),
|
|
59
66
|
entities,
|
|
@@ -68,7 +75,7 @@ export async function createBrowserVaultReplica(input) {
|
|
|
68
75
|
metricGoalProgressRows: buildMetricGoalProgressRows(defaultProjectedVault.entities, allMetricPoints, generatedAt),
|
|
69
76
|
metricRows,
|
|
70
77
|
metricSelectionRows,
|
|
71
|
-
personalPatterns
|
|
78
|
+
personalPatterns,
|
|
72
79
|
policy,
|
|
73
80
|
schema: BROWSER_VAULT_REPLICA_SCHEMA,
|
|
74
81
|
searchRows: entities.map(projectBrowserVaultSearchRow),
|
|
@@ -84,7 +91,9 @@ export async function createBrowserVaultReplica(input) {
|
|
|
84
91
|
...replicaWithoutVersion,
|
|
85
92
|
experimentRunCards: await buildBrowserVaultExperimentRunCards(createBrowserVaultProjectionQueryClient(replicaWithoutVersion)),
|
|
86
93
|
};
|
|
87
|
-
|
|
94
|
+
input.signal?.throwIfAborted();
|
|
95
|
+
const dataVersion = await hashBrowserVaultReplicaData(replicaWithDerivedCards, input.signal);
|
|
96
|
+
input.signal?.throwIfAborted();
|
|
88
97
|
return {
|
|
89
98
|
...replicaWithDerivedCards,
|
|
90
99
|
source: {
|
|
@@ -93,7 +102,15 @@ export async function createBrowserVaultReplica(input) {
|
|
|
93
102
|
},
|
|
94
103
|
};
|
|
95
104
|
}
|
|
96
|
-
|
|
105
|
+
async function yieldToBrowserVaultReplicaCancellation(signal) {
|
|
106
|
+
if (!signal) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
signal.throwIfAborted();
|
|
110
|
+
await new Promise((resolve) => setTimeout(resolve, 0));
|
|
111
|
+
signal.throwIfAborted();
|
|
112
|
+
}
|
|
113
|
+
export async function hashBrowserVaultReplicaData(replica, signal) {
|
|
97
114
|
const stableReplica = {
|
|
98
115
|
...replica,
|
|
99
116
|
generatedAt: "",
|
|
@@ -110,7 +127,10 @@ export async function hashBrowserVaultReplicaData(replica) {
|
|
|
110
127
|
dataVersion: "pending",
|
|
111
128
|
},
|
|
112
129
|
};
|
|
113
|
-
const digest = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(
|
|
130
|
+
const digest = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(await stringifyJsonCooperatively(stableReplica, {
|
|
131
|
+
signal,
|
|
132
|
+
sortKeys: true,
|
|
133
|
+
})));
|
|
114
134
|
return [...new Uint8Array(digest)]
|
|
115
135
|
.map((byte) => byte.toString(16).padStart(2, "0"))
|
|
116
136
|
.join("");
|
|
@@ -325,6 +345,7 @@ function projectEntityAttributes(entity, generatedAt) {
|
|
|
325
345
|
"aspect",
|
|
326
346
|
"domain",
|
|
327
347
|
"indicators",
|
|
348
|
+
"indicatorNotes",
|
|
328
349
|
"indicatorRecordedAt",
|
|
329
350
|
"note",
|
|
330
351
|
]);
|
|
@@ -549,16 +570,4 @@ function subtractDaysFromIsoDate(value, days) {
|
|
|
549
570
|
parsed.setUTCDate(parsed.getUTCDate() - days);
|
|
550
571
|
return parsed.toISOString().slice(0, 10);
|
|
551
572
|
}
|
|
552
|
-
function stableStringify(value) {
|
|
553
|
-
if (value === null || typeof value !== "object") {
|
|
554
|
-
return JSON.stringify(value);
|
|
555
|
-
}
|
|
556
|
-
if (Array.isArray(value)) {
|
|
557
|
-
return `[${value.map(stableStringify).join(",")}]`;
|
|
558
|
-
}
|
|
559
|
-
return `{${Object.entries(value)
|
|
560
|
-
.sort(([left], [right]) => left.localeCompare(right))
|
|
561
|
-
.map(([key, entry]) => `${JSON.stringify(key)}:${stableStringify(entry)}`)
|
|
562
|
-
.join(",")}}`;
|
|
563
|
-
}
|
|
564
573
|
//# sourceMappingURL=build.js.map
|