@murphai/murph 1.3.0 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +3077 -0
- package/config.schema.json +650 -30
- package/dist/cli-entry.js +1 -1
- package/dist/cli-entry.js.map +1 -1
- package/dist/commands/automation.d.ts +143 -104
- package/dist/commands/automation.d.ts.map +1 -1
- package/dist/commands/automation.js +71 -13
- package/dist/commands/automation.js.map +1 -1
- package/dist/commands/batch.d.ts +3 -0
- package/dist/commands/batch.d.ts.map +1 -1
- package/dist/commands/batch.js +18 -45
- package/dist/commands/batch.js.map +1 -1
- package/dist/commands/clinical-imports.d.ts +103 -103
- package/dist/commands/command-factory-primitives.d.ts +1 -1
- package/dist/commands/command-factory-primitives.d.ts.map +1 -1
- package/dist/commands/command-factory-primitives.js +1 -1
- package/dist/commands/command-factory-primitives.js.map +1 -1
- package/dist/commands/commons.d.ts +59 -0
- package/dist/commands/commons.d.ts.map +1 -1
- package/dist/commands/commons.js +81 -1
- package/dist/commands/commons.js.map +1 -1
- package/dist/commands/document.d.ts.map +1 -1
- package/dist/commands/document.js +31 -1
- package/dist/commands/document.js.map +1 -1
- package/dist/commands/encounter.d.ts +128 -128
- package/dist/commands/event.d.ts.map +1 -1
- package/dist/commands/event.js +7 -1
- package/dist/commands/event.js.map +1 -1
- package/dist/commands/experiment-progress-card-image.d.ts.map +1 -1
- package/dist/commands/experiment-progress-card-image.js +13 -4
- 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 +6 -0
- 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 +7 -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 +12 -4
- package/dist/commands/food.js.map +1 -1
- package/dist/commands/meal.d.ts.map +1 -1
- package/dist/commands/meal.js +54 -3
- package/dist/commands/meal.js.map +1 -1
- package/dist/commands/measurement.d.ts +1 -0
- package/dist/commands/measurement.d.ts.map +1 -1
- package/dist/commands/measurement.js +48 -2
- package/dist/commands/measurement.js.map +1 -1
- package/dist/commands/medication.d.ts +6 -6
- package/dist/commands/model.js +7 -11
- package/dist/commands/model.js.map +1 -1
- package/dist/commands/occurred-at-option.d.ts.map +1 -1
- package/dist/commands/occurred-at-option.js +7 -41
- package/dist/commands/occurred-at-option.js.map +1 -1
- package/dist/commands/payload-schema-command.d.ts +2 -2
- package/dist/commands/payload-schema-command.d.ts.map +1 -1
- package/dist/commands/payload-schema-command.js +1 -1
- package/dist/commands/payload-schema-command.js.map +1 -1
- package/dist/commands/research.d.ts.map +1 -1
- package/dist/commands/research.js +26 -28
- package/dist/commands/research.js.map +1 -1
- package/dist/commands/route.d.ts.map +1 -1
- package/dist/commands/route.js +45 -1
- package/dist/commands/route.js.map +1 -1
- package/dist/commands/scheduled-log.d.ts +130 -124
- package/dist/commands/scheduled-log.d.ts.map +1 -1
- package/dist/commands/wearables.d.ts +1109 -20
- package/dist/commands/wearables.d.ts.map +1 -1
- package/dist/commands/wearables.js +102 -2
- package/dist/commands/wearables.js.map +1 -1
- package/dist/commands/workout-live.d.ts +3 -0
- package/dist/commands/workout-live.d.ts.map +1 -0
- package/dist/commands/workout-live.js +291 -0
- package/dist/commands/workout-live.js.map +1 -0
- package/dist/commands/workout.d.ts.map +1 -1
- package/dist/commands/workout.js +35 -11
- package/dist/commands/workout.js.map +1 -1
- package/dist/food-labels.d.ts +549 -277
- package/dist/food-labels.d.ts.map +1 -1
- package/dist/food-labels.js +19 -3
- package/dist/food-labels.js.map +1 -1
- package/dist/foreground-terminal-logging.js +0 -2
- package/dist/foreground-terminal-logging.js.map +1 -1
- package/dist/hosted-data-api-labels.d.ts +1683 -871
- package/dist/hosted-data-api-labels.d.ts.map +1 -1
- package/dist/hosted-data-api-labels.js +63 -1
- package/dist/hosted-data-api-labels.js.map +1 -1
- package/dist/incur.generated.d.ts +148 -2
- package/dist/incur.generated.d.ts.map +1 -1
- package/dist/mapbox-address.d.ts +41 -0
- package/dist/mapbox-address.d.ts.map +1 -0
- package/dist/mapbox-address.js +470 -0
- package/dist/mapbox-address.js.map +1 -0
- package/dist/mapbox-route-contracts.d.ts +60 -60
- package/dist/mapbox-route-contracts.d.ts.map +1 -1
- package/dist/mapbox-route-contracts.js +1 -1
- package/dist/mapbox-route-contracts.js.map +1 -1
- package/dist/mapbox-route-directions.js +1 -1
- package/dist/mapbox-route-directions.js.map +1 -1
- package/dist/research-scout-client.d.ts +3 -2
- package/dist/research-scout-client.d.ts.map +1 -1
- package/dist/research-scout-client.js +166 -37
- package/dist/research-scout-client.js.map +1 -1
- package/dist/research-scout.d.ts +1 -1
- package/dist/research-scout.d.ts.map +1 -1
- package/dist/research-scout.js +1 -1
- package/dist/research-scout.js.map +1 -1
- package/dist/supplement-labels.d.ts +545 -275
- package/dist/supplement-labels.d.ts.map +1 -1
- package/dist/supplement-labels.js +0 -1
- package/dist/supplement-labels.js.map +1 -1
- package/dist/vault-cli-command-manifest.d.ts +1878 -404
- package/dist/vault-cli-command-manifest.d.ts.map +1 -1
- package/dist/vault-cli-command-manifest.js +35 -10
- package/dist/vault-cli-command-manifest.js.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/dist/vault-cli-vault-context.js +0 -1
- package/dist/vault-cli-vault-context.js.map +1 -1
- package/node_modules/@murphai/assistant-cli/dist/assistant/service.d.ts +9 -0
- package/node_modules/@murphai/assistant-cli/dist/assistant/service.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-cli/dist/assistant/ui/chat-controller-models.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-cli/dist/assistant/ui/chat-controller-models.js +0 -1
- package/node_modules/@murphai/assistant-cli/dist/assistant/ui/chat-controller-models.js.map +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 +4 -6
- package/node_modules/@murphai/assistant-cli/dist/assistant/ui/ink.js.map +1 -1
- package/node_modules/@murphai/assistant-cli/dist/assistant-daemon-client.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-cli/dist/assistant-daemon-client.js +19 -9
- package/node_modules/@murphai/assistant-cli/dist/assistant-daemon-client.js.map +1 -1
- package/node_modules/@murphai/assistant-cli/dist/commands/assistant.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-cli/dist/commands/assistant.js +20 -56
- package/node_modules/@murphai/assistant-cli/dist/commands/assistant.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/README.md +69 -13
- package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-controller.d.ts +6 -3
- 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 +52 -19
- 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.d.ts +75 -70
- package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-journal.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-journal.js +42 -17
- 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 +3 -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 +27 -7
- package/node_modules/@murphai/assistant-engine/dist/assistant/ask-continuation.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/attachment-evidence-model.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/attachment-evidence-model.js +4 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/attachment-evidence-model.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation/cross-session-route-state.d.ts +77 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation/cross-session-route-state.d.ts.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation/cross-session-route-state.js +777 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation/cross-session-route-state.js.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation/grouping.d.ts +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation/grouping.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation/grouping.js +36 -4
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation/grouping.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation/input-summary.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation/input-summary.js +3 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation/input-summary.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation/operation-scope.d.ts +3 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation/operation-scope.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation/prompt-builder.d.ts +10 -2
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation/prompt-builder.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation/prompt-builder.js +33 -13
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation/prompt-builder.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation/reply.d.ts +12 -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 +803 -171
- 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 +2 -0
- 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 +42 -17
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation/run-loop.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation/scanner.d.ts +2 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation/scanner.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation/scanner.js +59 -30
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation/scanner.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation/shared.d.ts +2 -1
- 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 +3 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation/shared.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation/target-override.d.ts +10 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation/target-override.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation/target-override.js +62 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation/target-override.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation.d.ts +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation.js +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/automation.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/channel-adapters.d.ts +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/channel-adapters.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/channel-adapters.js +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/channel-adapters.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/channels/descriptors.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/channels/descriptors.js +107 -44
- package/node_modules/@murphai/assistant-engine/dist/assistant/channels/descriptors.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/channels/helpers.d.ts +3 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/channels/helpers.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/channels/helpers.js +34 -3
- package/node_modules/@murphai/assistant-engine/dist/assistant/channels/helpers.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/channels/runtime.d.ts +22 -14
- package/node_modules/@murphai/assistant-engine/dist/assistant/channels/runtime.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/channels/runtime.js +352 -78
- package/node_modules/@murphai/assistant-engine/dist/assistant/channels/runtime.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/channels/types.d.ts +43 -8
- package/node_modules/@murphai/assistant-engine/dist/assistant/channels/types.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/channels/types.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/cli-surface-bootstrap.d.ts +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/cli-surface-bootstrap.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/cli-surface-bootstrap.js +6 -5
- package/node_modules/@murphai/assistant-engine/dist/assistant/cli-surface-bootstrap.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 +14 -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-runtime.d.ts +17 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/codex-runtime.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/codex-runtime.js +25 -19
- package/node_modules/@murphai/assistant-engine/dist/assistant/codex-runtime.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/codex-thread-route.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/codex-thread-route.js +9 -9
- package/node_modules/@murphai/assistant-engine/dist/assistant/codex-thread-route.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn/planning.d.ts +3 -7
- 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 +172 -48
- 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 +5 -3
- 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 +124 -25
- package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn-runner.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/content-types.d.ts +2 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/content-types.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/context-snapshot.d.ts +4 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/context-snapshot.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/context-snapshot.js +75 -19
- package/node_modules/@murphai/assistant-engine/dist/assistant/context-snapshot.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/conversation-persistence.d.ts +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/conversation-persistence.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/conversation-persistence.js +0 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/conversation-persistence.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/conversation-ref.d.ts +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/conversation-ref.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/conversation-ref.js +2 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/conversation-ref.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/authoring.d.ts +5 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/authoring.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/authoring.js +178 -31
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/authoring.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/canonical-jobs.d.ts +32 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/canonical-jobs.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/canonical-jobs.js +147 -31
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/canonical-jobs.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/delivery-reconciliation.d.ts +8 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/delivery-reconciliation.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/delivery-reconciliation.js +73 -15
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/delivery-reconciliation.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/execution.d.ts +3 -1
- 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 +420 -112
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/execution.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/mutations.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/mutations.js +2 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/mutations.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/output-history.d.ts +11 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/output-history.d.ts.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/output-history.js +153 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/output-history.js.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/runtime-state.d.ts +47 -47
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/runtime-state.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/runtime-state.js +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/runtime-state.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/schedule.d.ts +8 -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 +16 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/schedule.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/store.d.ts +49 -39
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/store.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/store.js +19 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/store.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/targets.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/targets.js +1 -3
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/targets.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/timing-verification.d.ts +2 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/timing-verification.d.ts.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/timing-verification.js +2 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron/timing-verification.js.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron.d.ts +9 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron.js +31 -2
- package/node_modules/@murphai/assistant-engine/dist/assistant/cron.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/delivery-service.d.ts +3 -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 +32 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/delivery-service.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/device-activity-cron-tags.d.ts +2 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/device-activity-cron-tags.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/device-activity-cron-tags.js +8 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/device-activity-cron-tags.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/execution-context.d.ts +91 -13
- 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 +48 -11
- package/node_modules/@murphai/assistant-engine/dist/assistant/execution-context.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/execution-plan.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/execution-plan.js +2 -8
- package/node_modules/@murphai/assistant-engine/dist/assistant/execution-plan.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 +8 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/experiment-support-automations.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-response-card-schema.d.ts +115 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-response-card-schema.d.ts.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-response-card-schema.js +162 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-response-card-schema.js.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-response-card.d.ts +3 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-response-card.d.ts.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-response-card.js +118 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-response-card.js.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-scorecard-schema.d.ts +83 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-scorecard-schema.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-scorecard-schema.js +27 -22
- package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-scorecard-schema.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-scorecard.js +8 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-scorecard.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/group-email-outbox.d.ts +20 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/group-email-outbox.d.ts.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/{newsletter-outbox.js → group-email-outbox.js} +65 -36
- package/node_modules/@murphai/assistant-engine/dist/assistant/group-email-outbox.js.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/group-newsletter-automation.d.ts +2 -48
- package/node_modules/@murphai/assistant-engine/dist/assistant/group-newsletter-automation.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/group-newsletter-automation.js +14 -98
- package/node_modules/@murphai/assistant-engine/dist/assistant/group-newsletter-automation.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/group-room-model.d.ts +22 -3
- package/node_modules/@murphai/assistant-engine/dist/assistant/group-room-model.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/group-room-model.js +87 -28
- package/node_modules/@murphai/assistant-engine/dist/assistant/group-room-model.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/group-shared-freshness.d.ts +2 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/group-shared-freshness.d.ts.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/group-shared-freshness.js +5 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/group-shared-freshness.js.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/group-shared-read-limits.d.ts +3 -2
- package/node_modules/@murphai/assistant-engine/dist/assistant/group-shared-read-limits.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/group-shared-read-limits.js +21 -2
- package/node_modules/@murphai/assistant-engine/dist/assistant/group-shared-read-limits.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-image-completion.d.ts +31 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-image-completion.d.ts.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-image-completion.js +164 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-image-completion.js.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-tool-context.d.ts +77 -24
- 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 +184 -63
- package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-tool-context.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/input-source.d.ts +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/input-source.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/input-source.js +2 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/input-source.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/input-store.d.ts +273 -269
- package/node_modules/@murphai/assistant-engine/dist/assistant/input-store.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/input-store.js +6 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/input-store.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/linq-delivery-posture.d.ts +3 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/linq-delivery-posture.d.ts.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/linq-delivery-posture.js +20 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/linq-delivery-posture.js.map +1 -0
- 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 +217 -84
- package/node_modules/@murphai/assistant-engine/dist/assistant/local-service.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/maintenance-evidence.d.ts +3 -3
- package/node_modules/@murphai/assistant-engine/dist/assistant/maintenance-evidence.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/maintenance-evidence.js +245 -6
- package/node_modules/@murphai/assistant-engine/dist/assistant/maintenance-evidence.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/managed-automations.d.ts +22 -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 +289 -34
- package/node_modules/@murphai/assistant-engine/dist/assistant/managed-automations.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/message-target-selection.d.ts +13 -22
- package/node_modules/@murphai/assistant-engine/dist/assistant/message-target-selection.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/message-target-selection.js +8 -3
- package/node_modules/@murphai/assistant-engine/dist/assistant/message-target-selection.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/model-behavior.d.ts +3 -0
- 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 +40 -7
- 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 +16 -14
- 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 +205 -56
- package/node_modules/@murphai/assistant-engine/dist/assistant/notification-turn.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-first-personal-read-automation.d.ts +14 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-first-personal-read-automation.d.ts.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-first-personal-read-automation.js +94 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-first-personal-read-automation.js.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-followup-automation.d.ts +22 -3
- package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-followup-automation.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-followup-automation.js +81 -7
- package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-followup-automation.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-goal-checkin-automation.d.ts +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-goal-checkin-automation.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-goal-checkin-automation.js +184 -83
- package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-goal-checkin-automation.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-state.js +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-state.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/automation-authority.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/automation-authority.js +24 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/automation-authority.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/dispatch-state.d.ts +15 -3
- package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/dispatch-state.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/dispatch-state.js +314 -53
- package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/dispatch-state.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/intents.d.ts +2 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/intents.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/intents.js +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/intents.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/receipt-repair.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/receipt-repair.js +5 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/receipt-repair.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/retry-policy.d.ts +4 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/retry-policy.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/retry-policy.js +33 -8
- package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/retry-policy.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/store.d.ts +37 -3
- 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 +1031 -41
- package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/store.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/summary.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/summary.js +7 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/summary.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/outbox.d.ts +61 -8
- package/node_modules/@murphai/assistant-engine/dist/assistant/outbox.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/outbox.js +561 -67
- package/node_modules/@murphai/assistant-engine/dist/assistant/outbox.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/private-completion-continuity.d.ts +23 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/private-completion-continuity.d.ts.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/private-completion-continuity.js +293 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/private-completion-continuity.js.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/prompt-time.d.ts +12 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/prompt-time.d.ts.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/prompt-time.js +38 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/prompt-time.js.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/provider-catalog.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/provider-catalog.js +2 -2
- package/node_modules/@murphai/assistant-engine/dist/assistant/provider-catalog.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/provider-start-critical-path.d.ts +48 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/provider-start-critical-path.d.ts.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/provider-start-critical-path.js +101 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/provider-start-critical-path.js.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/providers/codex-cli.d.ts +6 -0
- 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 +62 -96
- 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 +5 -2
- 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 +412 -568
- 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 +23 -1
- 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/redaction.d.ts +2 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/redaction.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/redaction.js +6 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/redaction.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/reminder-availability-maintenance.d.ts +17 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/reminder-availability-maintenance.d.ts.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/reminder-availability-maintenance.js +287 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/reminder-availability-maintenance.js.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/response-media.d.ts +33 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/response-media.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/response-media.js +173 -3
- package/node_modules/@murphai/assistant-engine/dist/assistant/response-media.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/runtime-residue.d.ts +6 -0
- 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 +61 -29
- 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 +17 -3
- package/node_modules/@murphai/assistant-engine/dist/assistant/service-contracts.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/service-turn-routes.d.ts +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/service-turn-routes.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/service-turn-routes.js +18 -8
- package/node_modules/@murphai/assistant-engine/dist/assistant/service-turn-routes.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/service-usage.d.ts +1 -0
- 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 +23 -4
- package/node_modules/@murphai/assistant-engine/dist/assistant/service-usage.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/service.d.ts +12 -2
- package/node_modules/@murphai/assistant-engine/dist/assistant/service.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/service.js +5 -3
- package/node_modules/@murphai/assistant-engine/dist/assistant/service.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/session-resolution.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/session-resolution.js +71 -16
- package/node_modules/@murphai/assistant-engine/dist/assistant/session-resolution.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/shared.d.ts +1 -0
- 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 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/shared.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/state-secrets.d.ts +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/state-secrets.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/state-secrets.js +0 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/state-secrets.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/store/persistence.d.ts +11 -3
- package/node_modules/@murphai/assistant-engine/dist/assistant/store/persistence.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/store/persistence.js +410 -139
- package/node_modules/@murphai/assistant-engine/dist/assistant/store/persistence.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/store/types.d.ts +2 -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 +48 -13
- 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 +4 -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 +274 -128
- 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 +9 -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 +133 -7
- 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 +11 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-feedback.d.ts.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-feedback.js +59 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-feedback.js.map +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 +109 -16
- 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 +2 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/turn-input.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/turn-input.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/turn-progress.d.ts +9 -2
- package/node_modules/@murphai/assistant-engine/dist/assistant/turn-progress.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/turn-progress.js +49 -6
- package/node_modules/@murphai/assistant-engine/dist/assistant/turn-progress.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/turns.d.ts +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/turns.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/turns.js +62 -22
- package/node_modules/@murphai/assistant-engine/dist/assistant/turns.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/vault-file-send.d.ts +7 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant/vault-file-send.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/vault-file-send.js +47 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/vault-file-send.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-ask.d.ts +4 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-ask.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-ask.js +49 -23
- package/node_modules/@murphai/assistant-engine/dist/assistant-ask.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-channel-adapters.d.ts +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-channel-adapters.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-channel-adapters.js +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-channel-adapters.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-channel-runtime.d.ts +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-channel-runtime.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-channel-runtime.js +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-channel-runtime.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 +12 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-cli-access.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/action-diagnostics.d.ts +8 -4
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/action-diagnostics.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/action-diagnostics.js +136 -19
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/action-diagnostics.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/action-outcome.d.ts +5 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/action-outcome.d.ts.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/action-outcome.js +36 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/action-outcome.js.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-protocol.d.ts +59 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-protocol.d.ts.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-protocol.js +181 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-protocol.js.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-requests.d.ts +5 -3
- 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 +19 -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 +2 -3
- 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 +7 -14
- 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/ask-grok-tool.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/ask-grok-tool.js +77 -11
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/ask-grok-tool.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/command-family.d.ts +17 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/command-family.d.ts.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/command-family.js +200 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/command-family.js.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tool-catalog.d.ts +3387 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tool-catalog.d.ts.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tool-catalog.js +1379 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tool-catalog.js.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/ask-grok.d.ts +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/ask-grok.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/ask-grok.js +2 -2
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/ask-grok.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/assistant-style.d.ts +15 -32
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/assistant-style.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/assistant-style.js +11 -7
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/assistant-style.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation.d.ts +26 -150
- 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 +537 -103
- 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/clinical-records.js +4 -4
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/clinical-records.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/connected-apps.d.ts +10 -54
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/connected-apps.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/connected-apps.js +134 -109
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/connected-apps.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/device.d.ts +2 -12
- 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 +1 -1
- 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 +2 -1
- 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 +2 -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/generate-song.d.ts +9 -2
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/generate-song.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/generate-song.js +31 -3
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/generate-song.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/generate-voice-memo.d.ts +7 -6
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/generate-voice-memo.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/generate-voice-memo.js +12 -8
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/generate-voice-memo.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/group-room-model.d.ts +10 -19
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/group-room-model.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/group-room-model.js +19 -7
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/group-room-model.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/labs.d.ts +2 -16
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/labs.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/labs.js +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/labs.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/pending-vault-files.d.ts +65 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/pending-vault-files.d.ts.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/pending-vault-files.js +214 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/pending-vault-files.js.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/phone-calls.d.ts +24 -16
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/phone-calls.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/phone-calls.js +78 -7
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/phone-calls.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/physical-notes.d.ts +91 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/physical-notes.d.ts.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/physical-notes.js +199 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/physical-notes.js.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools.d.ts +108 -2427
- 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 +2248 -1509
- 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.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/failures.js +39 -95
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/failures.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/generate-image-tool.d.ts +5 -2
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/generate-image-tool.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/generate-image-tool.js +88 -101
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/generate-image-tool.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/generate-voice-memo-tool.d.ts +58 -13
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/generate-voice-memo-tool.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/generate-voice-memo-tool.js +85 -122
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/generate-voice-memo-tool.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/image-reference-resolver.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/image-reference-resolver.js +5 -3
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/image-reference-resolver.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/images.d.ts +15 -2
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/images.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/images.js +99 -8
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/images.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/managed-voice-memo-runtime.d.ts +17 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/managed-voice-memo-runtime.d.ts.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/managed-voice-memo-runtime.js +12 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/managed-voice-memo-runtime.js.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/openai-image-generation.d.ts +7 -11
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/openai-image-generation.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/openai-image-generation.js +237 -52
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/openai-image-generation.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/response-card-validation-feedback.d.ts +3 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/response-card-validation-feedback.d.ts.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/response-card-validation-feedback.js +7 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex/response-card-validation-feedback.js.map +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex-events.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex-events.js +189 -486
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex-events.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex.d.ts +34 -6
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-codex.js +1014 -247
- 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-runtime.d.ts +2 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-runtime.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-runtime.js +1 -0
- package/node_modules/@murphai/assistant-engine/dist/assistant-runtime.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant-skill-assets.d.ts +23 -23
- 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 +26 -26
- package/node_modules/@murphai/assistant-engine/dist/assistant-skill-assets.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/attachment-prompt-contracts.d.ts +27 -27
- package/node_modules/@murphai/assistant-engine/dist/attachment-prompt-contracts.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/attachment-prompt-contracts.js +1 -1
- package/node_modules/@murphai/assistant-engine/dist/attachment-prompt-contracts.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/index.d.ts +8 -3
- package/node_modules/@murphai/assistant-engine/dist/index.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/index.js +6 -1
- package/node_modules/@murphai/assistant-engine/dist/index.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/knowledge/documents.d.ts +1 -1
- package/node_modules/@murphai/assistant-engine/dist/knowledge/documents.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/knowledge/documents.js +5 -1
- package/node_modules/@murphai/assistant-engine/dist/knowledge/documents.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/knowledge/service.d.ts +1 -0
- package/node_modules/@murphai/assistant-engine/dist/knowledge/service.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/knowledge/service.js +16 -2
- package/node_modules/@murphai/assistant-engine/dist/knowledge/service.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/outbound-channel.d.ts +5 -2
- package/node_modules/@murphai/assistant-engine/dist/outbound-channel.d.ts.map +1 -1
- package/node_modules/@murphai/assistant-engine/dist/outbound-channel.js +4 -2
- package/node_modules/@murphai/assistant-engine/dist/outbound-channel.js.map +1 -1
- package/node_modules/@murphai/assistant-engine/skills/README.md +29 -0
- package/node_modules/@murphai/assistant-engine/skills/appointment-scheduling/SKILL.md +23 -0
- package/node_modules/@murphai/assistant-engine/skills/automatic-meal-capture/SKILL.md +130 -5
- package/node_modules/@murphai/assistant-engine/skills/behavior-followthrough/SKILL.md +157 -116
- package/node_modules/@murphai/assistant-engine/skills/body-composition/SKILL.md +137 -27
- package/node_modules/@murphai/assistant-engine/skills/body-composition/references/evidence.md +150 -0
- package/node_modules/@murphai/assistant-engine/skills/body-composition/references/fat-loss.md +132 -0
- package/node_modules/@murphai/assistant-engine/skills/body-composition/references/muscle-gain.md +135 -0
- package/node_modules/@murphai/assistant-engine/skills/body-composition/references/safety.md +171 -0
- package/node_modules/@murphai/assistant-engine/skills/body-composition/references/tracking-and-adjustment.md +193 -0
- package/node_modules/@murphai/assistant-engine/skills/cardiometabolic-health/SKILL.md +10 -1
- package/node_modules/@murphai/assistant-engine/skills/computer-use/SKILL.md +0 -4
- package/node_modules/@murphai/assistant-engine/skills/connected-apps/SKILL.md +86 -12
- package/node_modules/@murphai/assistant-engine/skills/connected-apps/references/provider-data-exports.md +209 -0
- package/node_modules/@murphai/assistant-engine/skills/daily-activity/SKILL.md +16 -0
- package/node_modules/@murphai/assistant-engine/skills/experiment-onboarding/SKILL.md +22 -9
- package/node_modules/@murphai/assistant-engine/skills/food-journal/SKILL.md +140 -15
- package/node_modules/@murphai/assistant-engine/skills/group-challenge/SKILL.md +17 -737
- package/node_modules/@murphai/assistant-engine/skills/group-challenge-scorecards/SKILL.md +17 -328
- package/node_modules/@murphai/assistant-engine/skills/group-chat/SKILL.md +18 -912
- package/node_modules/@murphai/assistant-engine/skills/group-newsletter/SKILL.md +16 -237
- package/node_modules/@murphai/assistant-engine/skills/groupchat-comedy/SKILL.md +19 -351
- package/node_modules/@murphai/assistant-engine/skills/hosted-low-usage/SKILL.md +309 -117
- package/node_modules/@murphai/assistant-engine/skills/micronutrients-supplements/SKILL.md +30 -8
- package/node_modules/@murphai/assistant-engine/skills/mobility-posture/SKILL.md +1 -1
- package/node_modules/@murphai/assistant-engine/skills/murph-family/SKILL.md +91 -26
- package/node_modules/@murphai/assistant-engine/skills/murph-onboarding/SKILL.md +75 -751
- package/node_modules/@murphai/assistant-engine/skills/murph-onboarding/references/aspiration-foundation-delegation.md +443 -0
- package/node_modules/@murphai/assistant-engine/skills/murph-onboarding/references/persistence-recovery-follow-up.md +155 -0
- package/node_modules/@murphai/assistant-engine/skills/murph-onboarding/references/return-launch-completion.md +246 -0
- package/node_modules/@murphai/assistant-engine/skills/music-generation/SKILL.md +31 -163
- package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/SKILL.md +78 -7
- package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/daily-nutrition-card-goals.md +285 -0
- package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/daily-nutrition-card-safety.md +211 -0
- package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/named-diets/carnivore-animal-based.md +145 -0
- package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/named-diets/dash.md +183 -0
- package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/named-diets/intermittent-fasting.md +153 -0
- package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/named-diets/ketogenic.md +149 -0
- package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/named-diets/low-carbohydrate.md +167 -0
- package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/named-diets/mediterranean.md +141 -0
- package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/named-diets/vegan-plant-based.md +175 -0
- package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/named-diets/vegetarian-spectrum.md +131 -0
- package/node_modules/@murphai/assistant-engine/skills/phone-calls/SKILL.md +47 -67
- package/node_modules/@murphai/assistant-engine/skills/physical-notes/SKILL.md +120 -0
- package/node_modules/@murphai/assistant-engine/skills/physical-therapy/SKILL.md +4 -2
- package/node_modules/@murphai/assistant-engine/skills/self-management-experiments/SKILL.md +19 -3
- package/node_modules/@murphai/assistant-engine/skills/shared/exercise-catalog-runtime.md +30 -19
- package/node_modules/@murphai/assistant-engine/skills/signup-link/SKILL.md +30 -0
- package/node_modules/@murphai/assistant-engine/skills/strength-training/SKILL.md +9 -0
- package/node_modules/@murphai/assistant-engine/skills/tracked-table/SKILL.md +202 -0
- package/node_modules/@murphai/assistant-engine/skills/workout-csv-import/SKILL.md +129 -0
- package/node_modules/@murphai/assistantd/dist/client.d.ts +2 -0
- package/node_modules/@murphai/assistantd/dist/client.d.ts.map +1 -1
- package/node_modules/@murphai/assistantd/dist/client.js +33 -0
- package/node_modules/@murphai/assistantd/dist/client.js.map +1 -1
- package/node_modules/@murphai/assistantd/dist/http-protocol.d.ts.map +1 -1
- package/node_modules/@murphai/assistantd/dist/http-protocol.js +25 -1
- package/node_modules/@murphai/assistantd/dist/http-protocol.js.map +1 -1
- package/node_modules/@murphai/clinical-records/dist/index.d.ts +660 -660
- package/node_modules/@murphai/clinical-records/dist/index.d.ts.map +1 -1
- package/node_modules/@murphai/clinical-records/dist/index.js +1 -1
- package/node_modules/@murphai/clinical-records/dist/index.js.map +1 -1
- package/node_modules/@murphai/core/dist/automation-availability.d.ts +51 -0
- package/node_modules/@murphai/core/dist/automation-availability.d.ts.map +1 -0
- package/node_modules/@murphai/core/dist/automation-availability.js +226 -0
- package/node_modules/@murphai/core/dist/automation-availability.js.map +1 -0
- package/node_modules/@murphai/core/dist/automation.d.ts +9 -2
- package/node_modules/@murphai/core/dist/automation.d.ts.map +1 -1
- package/node_modules/@murphai/core/dist/automation.js +107 -13
- package/node_modules/@murphai/core/dist/automation.js.map +1 -1
- package/node_modules/@murphai/core/dist/bank/habitat.d.ts.map +1 -1
- package/node_modules/@murphai/core/dist/bank/habitat.js +8 -1
- package/node_modules/@murphai/core/dist/bank/habitat.js.map +1 -1
- package/node_modules/@murphai/core/dist/domains/events/attachment-backed.d.ts.map +1 -1
- package/node_modules/@murphai/core/dist/domains/events/attachment-backed.js +9 -123
- package/node_modules/@murphai/core/dist/domains/events/attachment-backed.js.map +1 -1
- package/node_modules/@murphai/core/dist/domains/events/capture-lookup.d.ts +33 -0
- package/node_modules/@murphai/core/dist/domains/events/capture-lookup.d.ts.map +1 -1
- package/node_modules/@murphai/core/dist/domains/events/capture-lookup.js +119 -0
- package/node_modules/@murphai/core/dist/domains/events/capture-lookup.js.map +1 -1
- package/node_modules/@murphai/core/dist/domains/events/generated-image-capture-retention.d.ts +24 -0
- package/node_modules/@murphai/core/dist/domains/events/generated-image-capture-retention.d.ts.map +1 -0
- package/node_modules/@murphai/core/dist/domains/events/generated-image-capture-retention.js +409 -0
- package/node_modules/@murphai/core/dist/domains/events/generated-image-capture-retention.js.map +1 -0
- package/node_modules/@murphai/core/dist/domains/events/ledger.d.ts +13 -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 +86 -7
- package/node_modules/@murphai/core/dist/domains/events/ledger.js.map +1 -1
- package/node_modules/@murphai/core/dist/domains/events.d.ts +6 -2
- package/node_modules/@murphai/core/dist/domains/events.d.ts.map +1 -1
- package/node_modules/@murphai/core/dist/domains/events.js +3 -1
- package/node_modules/@murphai/core/dist/domains/events.js.map +1 -1
- package/node_modules/@murphai/core/dist/domains/experiments.d.ts.map +1 -1
- package/node_modules/@murphai/core/dist/domains/experiments.js +5 -1
- package/node_modules/@murphai/core/dist/domains/experiments.js.map +1 -1
- package/node_modules/@murphai/core/dist/history/api.d.ts +8 -5
- package/node_modules/@murphai/core/dist/history/api.d.ts.map +1 -1
- package/node_modules/@murphai/core/dist/history/api.js +253 -20
- package/node_modules/@murphai/core/dist/history/api.js.map +1 -1
- package/node_modules/@murphai/core/dist/index.d.ts +8 -5
- package/node_modules/@murphai/core/dist/index.d.ts.map +1 -1
- package/node_modules/@murphai/core/dist/index.js +5 -3
- package/node_modules/@murphai/core/dist/index.js.map +1 -1
- package/node_modules/@murphai/core/dist/memory.d.ts.map +1 -1
- package/node_modules/@murphai/core/dist/memory.js +1 -0
- package/node_modules/@murphai/core/dist/memory.js.map +1 -1
- package/node_modules/@murphai/core/dist/mutations.d.ts +20 -2
- package/node_modules/@murphai/core/dist/mutations.d.ts.map +1 -1
- package/node_modules/@murphai/core/dist/mutations.js +618 -21
- package/node_modules/@murphai/core/dist/mutations.js.map +1 -1
- package/node_modules/@murphai/core/dist/operations/write-batch.d.ts +3 -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 +33 -2
- package/node_modules/@murphai/core/dist/operations/write-batch.js.map +1 -1
- package/node_modules/@murphai/core/dist/public-mutations.d.ts +2 -1
- package/node_modules/@murphai/core/dist/public-mutations.d.ts.map +1 -1
- package/node_modules/@murphai/core/dist/public-mutations.js +7 -2
- package/node_modules/@murphai/core/dist/public-mutations.js.map +1 -1
- package/node_modules/@murphai/device-syncd/README.md +143 -0
- package/node_modules/@murphai/device-syncd/dist/client.d.ts +1 -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 +25 -0
- 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 +54 -0
- package/node_modules/@murphai/device-syncd/dist/config/connect-routes.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/config/connect-targets.js +1 -1
- package/node_modules/@murphai/device-syncd/dist/config/connect-targets.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/config/junction-client-config.d.ts +2 -1
- package/node_modules/@murphai/device-syncd/dist/config/junction-client-config.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/config/junction-client-config.js +2 -1
- package/node_modules/@murphai/device-syncd/dist/config/junction-client-config.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/config/junction-config.d.ts +1 -0
- package/node_modules/@murphai/device-syncd/dist/config/junction-config.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/config/junction-config.js +9 -1
- package/node_modules/@murphai/device-syncd/dist/config/junction-config.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/config/provider-configs.d.ts +2 -2
- package/node_modules/@murphai/device-syncd/dist/config/provider-configs.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/config/provider-configs.js +2 -2
- package/node_modules/@murphai/device-syncd/dist/config/provider-configs.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/config/provider-env.d.ts +4 -2
- package/node_modules/@murphai/device-syncd/dist/config/provider-env.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/config/provider-env.js +6 -0
- package/node_modules/@murphai/device-syncd/dist/config/provider-env.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/config/provider-manifests.d.ts +561 -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 +203 -148
- package/node_modules/@murphai/device-syncd/dist/config/provider-manifests.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/config/provider-types.d.ts +11 -0
- package/node_modules/@murphai/device-syncd/dist/config/provider-types.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/config/runtime-config.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/config/runtime-config.js +2 -2
- package/node_modules/@murphai/device-syncd/dist/config/runtime-config.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/config/serializable-provider-configs.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/config/serializable-provider-configs.js +2 -0
- package/node_modules/@murphai/device-syncd/dist/config/serializable-provider-configs.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/config.d.ts +1 -1
- package/node_modules/@murphai/device-syncd/dist/config.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/config.js +1 -1
- package/node_modules/@murphai/device-syncd/dist/config.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/configured-provider-runtime-descriptors.d.ts +1 -1
- package/node_modules/@murphai/device-syncd/dist/configured-provider-runtime-descriptors.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/configured-provider-runtime-descriptors.js +1 -1
- package/node_modules/@murphai/device-syncd/dist/configured-provider-runtime-descriptors.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/hosted-runtime.d.ts +44 -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 +167 -1
- package/node_modules/@murphai/device-syncd/dist/hosted-runtime.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/index.d.ts +1 -1
- package/node_modules/@murphai/device-syncd/dist/index.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/index.js +1 -1
- package/node_modules/@murphai/device-syncd/dist/index.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/junction-historical-backfill-progress.d.ts +24 -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 +444 -9
- package/node_modules/@murphai/device-syncd/dist/junction-historical-backfill-progress.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/junction-resources.d.ts +16 -0
- package/node_modules/@murphai/device-syncd/dist/junction-resources.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/junction-resources.js +32 -0
- package/node_modules/@murphai/device-syncd/dist/junction-resources.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/junction-timeseries-progress.d.ts +8 -0
- package/node_modules/@murphai/device-syncd/dist/junction-timeseries-progress.d.ts.map +1 -0
- package/node_modules/@murphai/device-syncd/dist/junction-timeseries-progress.js +13 -0
- package/node_modules/@murphai/device-syncd/dist/junction-timeseries-progress.js.map +1 -0
- package/node_modules/@murphai/device-syncd/dist/prepared-webhook.d.ts +29 -0
- package/node_modules/@murphai/device-syncd/dist/prepared-webhook.d.ts.map +1 -0
- package/node_modules/@murphai/device-syncd/dist/prepared-webhook.js +263 -0
- package/node_modules/@murphai/device-syncd/dist/prepared-webhook.js.map +1 -0
- package/node_modules/@murphai/device-syncd/dist/provider-configs.d.ts +1 -1
- package/node_modules/@murphai/device-syncd/dist/provider-configs.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/provider-configs.js +1 -1
- package/node_modules/@murphai/device-syncd/dist/provider-configs.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/provider-label.d.ts +1 -0
- package/node_modules/@murphai/device-syncd/dist/provider-label.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/provider-label.js +4 -2
- package/node_modules/@murphai/device-syncd/dist/provider-label.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/providers/junction-client.d.ts +23 -1
- 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 +765 -192
- 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 +2 -2
- package/node_modules/@murphai/device-syncd/dist/providers/junction.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/providers/junction.js +3250 -205
- package/node_modules/@murphai/device-syncd/dist/providers/junction.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/providers/oura.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/providers/oura.js +2 -1
- package/node_modules/@murphai/device-syncd/dist/providers/oura.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/providers/shared-oauth.d.ts +12 -3
- package/node_modules/@murphai/device-syncd/dist/providers/shared-oauth.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/providers/shared-oauth.js +50 -12
- package/node_modules/@murphai/device-syncd/dist/providers/shared-oauth.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/providers/strava.d.ts +3 -1
- package/node_modules/@murphai/device-syncd/dist/providers/strava.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/providers/strava.js +51 -38
- package/node_modules/@murphai/device-syncd/dist/providers/strava.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/providers/whoop.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/providers/whoop.js +11 -1
- package/node_modules/@murphai/device-syncd/dist/providers/whoop.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/public-account.d.ts +52 -2
- package/node_modules/@murphai/device-syncd/dist/public-account.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/public-account.js +147 -1
- package/node_modules/@murphai/device-syncd/dist/public-account.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/public-ingress.d.ts +9 -2
- package/node_modules/@murphai/device-syncd/dist/public-ingress.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/public-ingress.js +632 -199
- package/node_modules/@murphai/device-syncd/dist/public-ingress.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/service.d.ts +17 -4
- package/node_modules/@murphai/device-syncd/dist/service.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/service.js +362 -43
- package/node_modules/@murphai/device-syncd/dist/service.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/store/accounts.d.ts +3 -1
- package/node_modules/@murphai/device-syncd/dist/store/accounts.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/store/accounts.js +25 -2
- package/node_modules/@murphai/device-syncd/dist/store/accounts.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/store/hosted-account-hydration.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/store/hosted-account-hydration.js +7 -1
- package/node_modules/@murphai/device-syncd/dist/store/hosted-account-hydration.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/store/jobs.d.ts +13 -3
- package/node_modules/@murphai/device-syncd/dist/store/jobs.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/store/jobs.js +171 -20
- package/node_modules/@murphai/device-syncd/dist/store/jobs.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/store/oauth-states.d.ts +3 -1
- package/node_modules/@murphai/device-syncd/dist/store/oauth-states.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/store/oauth-states.js +62 -4
- package/node_modules/@murphai/device-syncd/dist/store/oauth-states.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/store/sources.d.ts +1 -0
- package/node_modules/@murphai/device-syncd/dist/store/sources.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/store/sources.js +56 -55
- package/node_modules/@murphai/device-syncd/dist/store/sources.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/store/sync-state.d.ts +7 -2
- package/node_modules/@murphai/device-syncd/dist/store/sync-state.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/store/sync-state.js +82 -28
- package/node_modules/@murphai/device-syncd/dist/store/sync-state.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/store/webhook-traces.js +2 -2
- package/node_modules/@murphai/device-syncd/dist/store/webhook-traces.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/store.d.ts +19 -4
- package/node_modules/@murphai/device-syncd/dist/store.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/store.js +62 -11
- package/node_modules/@murphai/device-syncd/dist/store.js.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/types.d.ts +169 -4
- package/node_modules/@murphai/device-syncd/dist/types.d.ts.map +1 -1
- package/node_modules/@murphai/device-syncd/dist/types.js +3 -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-commons/content/biomarkers/bilirubin.md +18 -0
- package/node_modules/@murphai/health-commons/content/biomarkers/carbon-dioxide.md +18 -0
- package/node_modules/@murphai/health-commons/content/biomarkers/potassium.md +18 -0
- package/node_modules/@murphai/health-commons/content/biomarkers/sodium.md +18 -0
- package/node_modules/@murphai/health-commons/content/families/general-eye-health.md +190 -0
- package/node_modules/@murphai/health-commons/content/families/photobiomodulation.md +97 -0
- package/node_modules/@murphai/health-commons/content/families/recovery-modalities.md +73 -0
- package/node_modules/@murphai/health-commons/content/protocols/whole-body-photobiomodulation/whole-body-red-and-near-infrared-light-exposure.md +1 -1
- package/node_modules/@murphai/health-commons/content/sources/general-eye-health/cdc-contact-lens-infection-symptoms.md +20 -0
- package/node_modules/@murphai/health-commons/content/sources/general-eye-health/cdc-contact-lens-prevention.md +20 -0
- package/node_modules/@murphai/health-commons/content/sources/general-eye-health/cdc-stroke-signs.md +20 -0
- package/node_modules/@murphai/health-commons/content/sources/general-eye-health/cochrane-blue-light-filtering-lenses.md +21 -0
- package/node_modules/@murphai/health-commons/content/sources/general-eye-health/fda-buying-contact-lenses.md +20 -0
- package/node_modules/@murphai/health-commons/content/sources/general-eye-health/fda-eye-drops.md +20 -0
- package/node_modules/@murphai/health-commons/content/sources/general-eye-health/imi-myopia-interventions.md +20 -0
- package/node_modules/@murphai/health-commons/content/sources/general-eye-health/medlineplus-eye-emergencies.md +20 -0
- package/node_modules/@murphai/health-commons/content/sources/general-eye-health/medlineplus-eye-pain.md +20 -0
- package/node_modules/@murphai/health-commons/content/sources/general-eye-health/nei-angle-closure-glaucoma.md +20 -0
- package/node_modules/@murphai/health-commons/content/sources/general-eye-health/nei-areds2-faq.md +20 -0
- package/node_modules/@murphai/health-commons/content/sources/general-eye-health/nei-contact-lenses.md +20 -0
- package/node_modules/@murphai/health-commons/content/sources/general-eye-health/nei-dry-eye.md +20 -0
- package/node_modules/@murphai/health-commons/content/sources/general-eye-health/nei-healthy-vision.md +21 -0
- package/node_modules/@murphai/health-commons/content/sources/general-eye-health/nei-myopia.md +20 -0
- package/node_modules/@murphai/health-commons/content/sources/general-eye-health/nei-retinal-detachment.md +20 -0
- package/node_modules/@murphai/health-commons/content/sources/general-eye-health/nih-dream-omega3-dry-eye.md +21 -0
- package/node_modules/@murphai/health-commons/content/sources/general-eye-health/osha-computer-monitors.md +20 -0
- package/node_modules/@murphai/health-commons/content/sources/general-eye-health/pmc-9840372.md +22 -0
- package/node_modules/@murphai/health-commons/content/sources/general-eye-health/pmid-35597519.md +21 -0
- package/node_modules/@murphai/health-commons/content/sources/general-eye-health/pmid-36473088.md +21 -0
- package/node_modules/@murphai/health-commons/content/sources/general-eye-health/pmid-37062428.md +21 -0
- package/node_modules/@murphai/health-commons/content/sources/whole-body-photobiomodulation/clinicaltrials-gov-nct07047248-2026-04-23.md +0 -1
- package/node_modules/@murphai/health-commons/dist/biomarker-fallback-ranges.d.ts +3 -0
- package/node_modules/@murphai/health-commons/dist/biomarker-fallback-ranges.d.ts.map +1 -0
- package/node_modules/@murphai/health-commons/dist/biomarker-fallback-ranges.js +2 -0
- package/node_modules/@murphai/health-commons/dist/biomarker-fallback-ranges.js.map +1 -0
- package/node_modules/@murphai/health-commons/dist/biomarker-runtime-artifacts.d.ts +17 -0
- package/node_modules/@murphai/health-commons/dist/biomarker-runtime-artifacts.d.ts.map +1 -0
- package/node_modules/@murphai/health-commons/dist/biomarker-runtime-artifacts.js +16 -0
- package/node_modules/@murphai/health-commons/dist/biomarker-runtime-artifacts.js.map +1 -0
- package/node_modules/@murphai/health-commons/dist/build.d.ts.map +1 -1
- package/node_modules/@murphai/health-commons/dist/build.js +41 -7
- package/node_modules/@murphai/health-commons/dist/build.js.map +1 -1
- package/node_modules/@murphai/health-commons/dist/index.d.ts +1 -0
- package/node_modules/@murphai/health-commons/dist/index.d.ts.map +1 -1
- package/node_modules/@murphai/health-commons/dist/index.js +1 -0
- package/node_modules/@murphai/health-commons/dist/index.js.map +1 -1
- package/node_modules/@murphai/health-commons/dist/knowledge-index.d.ts +44 -0
- package/node_modules/@murphai/health-commons/dist/knowledge-index.d.ts.map +1 -0
- package/node_modules/@murphai/health-commons/dist/knowledge-index.js +540 -0
- package/node_modules/@murphai/health-commons/dist/knowledge-index.js.map +1 -0
- package/node_modules/@murphai/health-commons/dist/runtime.d.ts +17 -1
- package/node_modules/@murphai/health-commons/dist/runtime.d.ts.map +1 -1
- package/node_modules/@murphai/health-commons/dist/runtime.js +58 -4
- package/node_modules/@murphai/health-commons/dist/runtime.js.map +1 -1
- package/node_modules/@murphai/health-commons/generated/biomarker-desired-directions.json +410 -0
- package/node_modules/@murphai/health-commons/generated/catalog.hash +1 -1
- package/node_modules/@murphai/health-commons/generated/knowledge.sqlite +0 -0
- package/node_modules/@murphai/health-commons/generated/protocol-family-graph.json +187 -46
- package/node_modules/@murphai/health-commons/generated/protocol-index.json +47 -47
- package/node_modules/@murphai/health-commons/generated/protocol-run-specs.json +967 -967
- package/node_modules/@murphai/health-commons/generated/source-artifact-index.json +1 -1
- package/node_modules/@murphai/health-commons/generated/source-identities.ndjson +28 -0
- package/node_modules/@murphai/health-commons/generated/source-index.json +694 -2
- package/node_modules/@murphai/health-commons/generated/web/browse/biomarkers.json +77 -9
- package/node_modules/@murphai/health-commons/generated/web/browse/experiments.json +37 -37
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/absolute-basophils.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/absolute-eosinophils.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/absolute-immature-granulocytes.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/absolute-lymphocytes.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/absolute-monocytes.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/absolute-neutrophils.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/added-sugar-intake.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/adherence.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/adjusted-calcium.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/adverse-symptoms.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/alanine-aminotransferase.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/albumin-globulin-ratio.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/albumin.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/alcohol-craving.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/alcohol-free-days.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/alcohol-intake.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/alcohol-withdrawal-symptoms.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/alkaline-phosphatase.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ana-screen.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/anion-gap.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ankle-knee-to-wall-distance.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/apolipoprotein-b.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/arachidonic-acid-epa-ratio.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/arachidonic-acid.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/aspartate-aminotransferase.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/basophil-percentage.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/bedtime-delay.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/bilirubin.json +3 -3
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/blood-glucose.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/blood-ketones-beta-hydroxybutyrate.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/blood-oxygen-spo2.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/blood-pressure.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/blood-urea-nitrogen.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/body-fat-percent.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/body-weight.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/bun-creatinine-ratio.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/c-peptide.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/calcium.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/carbon-dioxide.json +3 -3
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/chloride.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/cholesterol-hdl-ratio.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/chosen-primary-outcome-score.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/continuous-glucose.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/cortisol.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/creatine-kinase.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/daily-energy-intake-kcal.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/daily-protein-g-per-kg.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/daily-protein-grams.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/daily-step-count.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/daytime-sleepiness.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/deep-sleep-minutes.json +4 -4
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/dha.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/dhea-sulfate.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/dietary-fiber-g-day.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/digestive-comfort.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/dpa.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/egfr-ckd-epi.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/egfr.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/eosinophil-percentage.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/epa.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/estimated-gfr.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/estimated-vo2max.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/estradiol.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/fasting-triglycerides.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ferritin.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/fib4.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/follicle-stimulating-hormone.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/free-t3.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/free-t4.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/free-testosterone.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/gfr-mdrd-af-amer.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/gfr-mdrd-non-af-amer.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ggt.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/gi-symptom-score.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/gi-tolerance.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/hba1c.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/hbot-session-tolerability.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/hdl-c.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/hematocrit.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/hemoglobin.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/homocysteine.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/hrv-rmssd.json +4 -4
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/hs-crp.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/immature-granulocyte-percentage.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/insulin.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/iron-saturation.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/iron.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/lateral-knee-pain.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldh.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldl-c.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldl-calculated.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldl-chol-calc-nih.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldl-cholesterol.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldl-large-particles.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldl-medium-particles.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldl-particle-number.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldl-pattern.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldl-peak-size.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldl-small-particles.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/lead.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/lean-body-mass.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/lean-mass.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/leg-heaviness-score.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/linoleic-acid.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/lipoprotein-a.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/liver-enzyme-panel.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/luteinizing-hormone.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/lymphocyte-percentage.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/macular-health-safety.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/magnesium-rbc.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/mean-corpuscular-hemoglobin-concentration.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/mean-corpuscular-hemoglobin.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/mean-corpuscular-volume.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/mean-platelet-volume.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/mercury.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/methylmalonic-acid.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/moderate-to-vigorous-activity-minutes.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/monocyte-percentage.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/mood-affect.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/morning-blood-pressure.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/muscle-soreness-score.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/musculoskeletal-pain.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/neutrophil-percentage.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/non-hdl-c.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/non-hdl-cholesterol.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/omega-3-index.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/omega-3-total-omegacheck.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/omega-6-3-ratio.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/omega-6-total.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/omegacheck-total.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/perceived-recovery-score.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/perceived-recovery.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/perceived-stiffness.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/perceived-stress.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/periocular-wrinkle-score.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/phosphate.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/platelet-count.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/poc-troponin-i.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/postprandial-glucose-excursion.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/potassium.json +3 -3
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/pre-sleep-arousal.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/prolactin.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/psa-free.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/psa-percent-free.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/psa-total.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/red-blood-cell-count.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/red-cell-distribution-width.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/rem-sleep-minutes.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/resting-heart-rate.json +4 -4
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/rheumatoid-factor.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/running-tolerance.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/saturated-fat-g-day.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/sedentary-time.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/self-reported-mood.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/serum-25-hydroxyvitamin-d.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/serum-creatinine.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/serum-uric-acid.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/sex-hormone-binding-globulin.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/shoulder-reach-distance.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/sit-and-reach-distance.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/skin-texture-roughness-score.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/skin-tolerability-symptoms.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/sleep-efficiency.json +4 -4
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/sleep-onset-latency.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/sleep-quality.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/sodium.json +3 -3
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/standardized-skin-photo-score.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/step-floor-days.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/stretching-adherence-sessions.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/stretching-session-burden.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/stretching-symptoms.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/subjective-eye-strain.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/subjective-satiety.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/supplement-adherence.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/task-performance.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/thyroglobulin-antibodies.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/thyroid-peroxidase-antibodies.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/thyroid-stimulating-hormone.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/toe-touch-distance.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/total-cholesterol.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/total-globulin.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/total-iron-binding-capacity.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/total-protein.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/total-sleep-time.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/total-testosterone.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/training-performance.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/training-volume.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/triglycerides.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/urine-albumin-creatinine-ratio.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/urine-albumin-random-without-creatinine.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/urine-protein.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/visual-fatigue.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/visual-performance.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/vldl-cholesterol-calculated.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/waist-circumference.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/wake-after-sleep-onset.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/wake-time-variability.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/walking-bout-minutes.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/walking-cadence.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/walking-safety-events.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/white-blood-cell-count.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/zinc.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/measurement_method/clinic-imaging-upgrade.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/measurement_method/home-standardized-photo-roi-analysis.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/measurement_method/standardized-photo-score-workflow.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/bryan-johnson-blueprint.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/cold-plunge.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/consistent-wake-time.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/daily-step-floor.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/finnish-sauna.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/five-minute-tomorrow-list.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/hyperbaric-oxygen-therapy.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/morning-outdoor-light-exposure.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/no-added-sugar-diet.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/norwegian-4x4.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/pneumatic-compression-pants.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/protein-floor-high-protein-intake.json +3 -3
- package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/tabata-20-10-interval-training.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/time-restricted-eating-18-6.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/walking-after-every-meal.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/whole-body-red-and-near-infrared-light-exposure.json +7 -8
- package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/blood-oxygen-spo2/overview.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/blood-oxygen-spo2/research.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/deep-sleep-minutes/overview.json +2 -2
- package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/deep-sleep-minutes/research.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/estimated-vo2max/overview.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/estimated-vo2max/research.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/hrv-rmssd/overview.json +2 -2
- package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/hrv-rmssd/research.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/rem-sleep-minutes/overview.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/rem-sleep-minutes/research.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/resting-heart-rate/overview.json +2 -2
- package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/resting-heart-rate/research.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/routes/index.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/shell/biomarkers/blood-oxygen-spo2.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/shell/biomarkers/deep-sleep-minutes.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/shell/biomarkers/estimated-vo2max.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/shell/biomarkers/hrv-rmssd.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/shell/biomarkers/rem-sleep-minutes.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/shell/biomarkers/resting-heart-rate.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/shell/experiments/bryan-johnson-blueprint.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/shell/experiments/cold-plunge.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/shell/experiments/consistent-wake-time.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/shell/experiments/daily-step-floor.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/shell/experiments/finnish-sauna.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/shell/experiments/five-minute-tomorrow-list.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/shell/experiments/hyperbaric-oxygen-therapy.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/shell/experiments/morning-outdoor-light-exposure.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/shell/experiments/no-added-sugar-diet.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/shell/experiments/norwegian-4x4.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/shell/experiments/pneumatic-compression-pants.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/shell/experiments/protein-floor-high-protein-intake.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/shell/experiments/tabata-20-10-interval-training.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/shell/experiments/time-restricted-eating-18-6.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/shell/experiments/walking-after-every-meal.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/shell/experiments/whole-body-red-and-near-infrared-light-exposure.json +3 -3
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/bryan-johnson-blueprint/protocol.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/bryan-johnson-blueprint/research.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/bryan-johnson-blueprint/results-public.json +2 -2
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/cold-plunge/protocol.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/cold-plunge/research.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/cold-plunge/results-public.json +2 -2
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/consistent-wake-time/protocol.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/consistent-wake-time/research.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/consistent-wake-time/results-public.json +2 -2
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/daily-step-floor/protocol.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/daily-step-floor/research.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/daily-step-floor/results-public.json +2 -2
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/finnish-sauna/protocol.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/finnish-sauna/research.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/finnish-sauna/results-public.json +2 -2
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/five-minute-tomorrow-list/protocol.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/five-minute-tomorrow-list/research.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/five-minute-tomorrow-list/results-public.json +2 -2
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/hyperbaric-oxygen-therapy/protocol.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/hyperbaric-oxygen-therapy/research.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/hyperbaric-oxygen-therapy/results-public.json +2 -2
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/morning-outdoor-light-exposure/protocol.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/morning-outdoor-light-exposure/research.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/morning-outdoor-light-exposure/results-public.json +2 -2
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/no-added-sugar-diet/protocol.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/no-added-sugar-diet/research.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/no-added-sugar-diet/results-public.json +2 -2
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/norwegian-4x4/protocol.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/norwegian-4x4/research.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/norwegian-4x4/results-public.json +2 -2
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/pneumatic-compression-pants/protocol.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/pneumatic-compression-pants/research.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/pneumatic-compression-pants/results-public.json +2 -2
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/protein-floor-high-protein-intake/protocol.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/protein-floor-high-protein-intake/research.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/protein-floor-high-protein-intake/results-public.json +2 -2
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/tabata-20-10-interval-training/protocol.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/tabata-20-10-interval-training/research.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/tabata-20-10-interval-training/results-public.json +2 -2
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/time-restricted-eating-18-6/protocol.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/time-restricted-eating-18-6/research.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/time-restricted-eating-18-6/results-public.json +2 -2
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/walking-after-every-meal/protocol.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/walking-after-every-meal/research.json +1 -1
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/walking-after-every-meal/results-public.json +2 -2
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/whole-body-red-and-near-infrared-light-exposure/protocol.json +3 -3
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/whole-body-red-and-near-infrared-light-exposure/research.json +3 -3
- package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/whole-body-red-and-near-infrared-light-exposure/results-public.json +5 -5
- package/node_modules/@murphai/health-commons/package.json +5 -0
- package/node_modules/@murphai/health-metrics/dist/catalog.d.ts.map +1 -1
- package/node_modules/@murphai/health-metrics/dist/catalog.js +22 -2
- package/node_modules/@murphai/health-metrics/dist/catalog.js.map +1 -1
- package/node_modules/@murphai/health-metrics/dist/definitions/activity.d.ts.map +1 -1
- package/node_modules/@murphai/health-metrics/dist/definitions/activity.js +99 -0
- package/node_modules/@murphai/health-metrics/dist/definitions/activity.js.map +1 -1
- package/node_modules/@murphai/health-metrics/dist/definitions/body.d.ts.map +1 -1
- package/node_modules/@murphai/health-metrics/dist/definitions/body.js +69 -2
- package/node_modules/@murphai/health-metrics/dist/definitions/body.js.map +1 -1
- package/node_modules/@murphai/health-metrics/dist/definitions/physiology.d.ts +55 -0
- package/node_modules/@murphai/health-metrics/dist/definitions/physiology.d.ts.map +1 -0
- package/node_modules/@murphai/health-metrics/dist/definitions/physiology.js +92 -0
- package/node_modules/@murphai/health-metrics/dist/definitions/physiology.js.map +1 -0
- package/node_modules/@murphai/health-metrics/dist/definitions/vitals.d.ts +1 -1
- package/node_modules/@murphai/health-metrics/dist/index.d.ts +1 -0
- package/node_modules/@murphai/health-metrics/dist/index.d.ts.map +1 -1
- package/node_modules/@murphai/health-metrics/dist/index.js +1 -0
- package/node_modules/@murphai/health-metrics/dist/index.js.map +1 -1
- package/node_modules/@murphai/health-metrics/dist/lab-reference-ranges.d.ts +45 -0
- package/node_modules/@murphai/health-metrics/dist/lab-reference-ranges.d.ts.map +1 -0
- package/node_modules/@murphai/health-metrics/dist/lab-reference-ranges.js +502 -0
- package/node_modules/@murphai/health-metrics/dist/lab-reference-ranges.js.map +1 -0
- package/node_modules/@murphai/health-metrics/dist/normalize.d.ts.map +1 -1
- package/node_modules/@murphai/health-metrics/dist/normalize.js +2 -0
- package/node_modules/@murphai/health-metrics/dist/normalize.js.map +1 -1
- package/node_modules/@murphai/health-metrics/dist/selectors.d.ts +3 -0
- package/node_modules/@murphai/health-metrics/dist/selectors.d.ts.map +1 -1
- package/node_modules/@murphai/health-metrics/dist/selectors.js +52 -6
- package/node_modules/@murphai/health-metrics/dist/selectors.js.map +1 -1
- package/node_modules/@murphai/health-metrics/dist/types.d.ts +1 -0
- package/node_modules/@murphai/health-metrics/dist/types.d.ts.map +1 -1
- package/node_modules/@murphai/health-metrics/dist/wearable-metric-catalog.d.ts +10 -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 +29 -0
- package/node_modules/@murphai/health-metrics/dist/wearable-metric-catalog.js.map +1 -1
- package/node_modules/@murphai/importers/README.md +2 -0
- package/node_modules/@murphai/importers/dist/assessment/import-assessment-response.js +1 -1
- package/node_modules/@murphai/importers/dist/assessment/import-assessment-response.js.map +1 -1
- package/node_modules/@murphai/importers/dist/core-port.d.ts +1 -0
- 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/csv-sample-import-planner.d.ts +1 -0
- package/node_modules/@murphai/importers/dist/csv-sample-import-planner.d.ts.map +1 -1
- package/node_modules/@murphai/importers/dist/csv-sample-import-planner.js +1 -1
- package/node_modules/@murphai/importers/dist/csv-sample-import-planner.js.map +1 -1
- package/node_modules/@murphai/importers/dist/device-providers/import-device-provider-snapshot.js +1 -1
- 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 +1 -1
- package/node_modules/@murphai/importers/dist/device-providers/index.d.ts.map +1 -1
- package/node_modules/@murphai/importers/dist/device-providers/index.js +1 -1
- 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 +27 -0
- package/node_modules/@murphai/importers/dist/device-providers/junction-bounded-features.d.ts.map +1 -0
- package/node_modules/@murphai/importers/dist/device-providers/junction-bounded-features.js +403 -0
- package/node_modules/@murphai/importers/dist/device-providers/junction-bounded-features.js.map +1 -0
- package/node_modules/@murphai/importers/dist/device-providers/junction-resources.d.ts +4 -12
- 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 +18 -107
- package/node_modules/@murphai/importers/dist/device-providers/junction-resources.js.map +1 -1
- package/node_modules/@murphai/importers/dist/device-providers/junction-timeseries-fidelity.d.ts +285 -0
- package/node_modules/@murphai/importers/dist/device-providers/junction-timeseries-fidelity.d.ts.map +1 -0
- package/node_modules/@murphai/importers/dist/device-providers/junction-timeseries-fidelity.js +870 -0
- package/node_modules/@murphai/importers/dist/device-providers/junction-timeseries-fidelity.js.map +1 -0
- package/node_modules/@murphai/importers/dist/device-providers/junction.d.ts +38 -0
- package/node_modules/@murphai/importers/dist/device-providers/junction.d.ts.map +1 -1
- package/node_modules/@murphai/importers/dist/device-providers/junction.js +2682 -259
- package/node_modules/@murphai/importers/dist/device-providers/junction.js.map +1 -1
- package/node_modules/@murphai/importers/dist/device-providers/oura.js +1 -1
- package/node_modules/@murphai/importers/dist/device-providers/oura.js.map +1 -1
- package/node_modules/@murphai/importers/dist/device-providers/whoop.js +1 -1
- package/node_modules/@murphai/importers/dist/device-providers/whoop.js.map +1 -1
- package/node_modules/@murphai/importers/dist/document-importer.d.ts +1 -0
- package/node_modules/@murphai/importers/dist/document-importer.d.ts.map +1 -1
- package/node_modules/@murphai/importers/dist/document-importer.js +3 -1
- package/node_modules/@murphai/importers/dist/document-importer.js.map +1 -1
- package/node_modules/@murphai/importers/dist/index.d.ts +1 -0
- package/node_modules/@murphai/importers/dist/index.d.ts.map +1 -1
- package/node_modules/@murphai/importers/dist/index.js +1 -0
- package/node_modules/@murphai/importers/dist/index.js.map +1 -1
- package/node_modules/@murphai/importers/dist/meal-importer.d.ts.map +1 -1
- package/node_modules/@murphai/importers/dist/meal-importer.js +2 -1
- package/node_modules/@murphai/importers/dist/meal-importer.js.map +1 -1
- package/node_modules/@murphai/importers/dist/preset-registry.js +1 -1
- package/node_modules/@murphai/importers/dist/preset-registry.js.map +1 -1
- package/node_modules/@murphai/importers/dist/shared.d.ts +1 -1
- package/node_modules/@murphai/importers/dist/shared.d.ts.map +1 -1
- package/node_modules/@murphai/importers/dist/shared.js +1 -1
- package/node_modules/@murphai/importers/dist/shared.js.map +1 -1
- package/node_modules/@murphai/importers/dist/workout-csv-planner.d.ts +49 -0
- package/node_modules/@murphai/importers/dist/workout-csv-planner.d.ts.map +1 -0
- package/node_modules/@murphai/importers/dist/workout-csv-planner.js +860 -0
- package/node_modules/@murphai/importers/dist/workout-csv-planner.js.map +1 -0
- package/node_modules/@murphai/inbox-services/dist/inbox-app/bootstrap-doctor-strategies.d.ts +2 -5
- package/node_modules/@murphai/inbox-services/dist/inbox-app/bootstrap-doctor-strategies.d.ts.map +1 -1
- package/node_modules/@murphai/inbox-services/dist/inbox-app/bootstrap-doctor-strategies.js +3 -50
- package/node_modules/@murphai/inbox-services/dist/inbox-app/bootstrap-doctor-strategies.js.map +1 -1
- package/node_modules/@murphai/inbox-services/dist/inbox-app/bootstrap-doctor.d.ts.map +1 -1
- package/node_modules/@murphai/inbox-services/dist/inbox-app/bootstrap-doctor.js +9 -11
- package/node_modules/@murphai/inbox-services/dist/inbox-app/bootstrap-doctor.js.map +1 -1
- package/node_modules/@murphai/inbox-services/dist/inbox-app/environment.d.ts.map +1 -1
- package/node_modules/@murphai/inbox-services/dist/inbox-app/environment.js +0 -160
- package/node_modules/@murphai/inbox-services/dist/inbox-app/environment.js.map +1 -1
- package/node_modules/@murphai/inbox-services/dist/inbox-app/runtime.d.ts.map +1 -1
- package/node_modules/@murphai/inbox-services/dist/inbox-app/runtime.js +2 -4
- package/node_modules/@murphai/inbox-services/dist/inbox-app/runtime.js.map +1 -1
- package/node_modules/@murphai/inbox-services/dist/inbox-app/sources.d.ts +1 -1
- package/node_modules/@murphai/inbox-services/dist/inbox-app/sources.d.ts.map +1 -1
- package/node_modules/@murphai/inbox-services/dist/inbox-app/sources.js +2 -32
- package/node_modules/@murphai/inbox-services/dist/inbox-app/sources.js.map +1 -1
- package/node_modules/@murphai/inbox-services/dist/inbox-app/types.d.ts +2 -79
- package/node_modules/@murphai/inbox-services/dist/inbox-app/types.d.ts.map +1 -1
- package/node_modules/@murphai/inbox-services/dist/inbox-app/types.js +0 -1
- package/node_modules/@murphai/inbox-services/dist/inbox-app/types.js.map +1 -1
- package/node_modules/@murphai/inbox-services/dist/inbox-services/connectors.d.ts +1 -2
- package/node_modules/@murphai/inbox-services/dist/inbox-services/connectors.d.ts.map +1 -1
- package/node_modules/@murphai/inbox-services/dist/inbox-services/connectors.js +15 -37
- package/node_modules/@murphai/inbox-services/dist/inbox-services/connectors.js.map +1 -1
- package/node_modules/@murphai/inbox-services/dist/inbox-services/promotions.d.ts +21 -21
- package/node_modules/@murphai/inbox-services/dist/inbox-services/promotions.d.ts.map +1 -1
- package/node_modules/@murphai/inbox-services/dist/inbox-services/promotions.js +1 -1
- package/node_modules/@murphai/inbox-services/dist/inbox-services/promotions.js.map +1 -1
- package/node_modules/@murphai/inbox-services/dist/inbox-services/shared.d.ts +1 -1
- package/node_modules/@murphai/inbox-services/dist/inbox-services/shared.d.ts.map +1 -1
- package/node_modules/@murphai/inbox-services/dist/inbox-services/shared.js +0 -1
- package/node_modules/@murphai/inbox-services/dist/inbox-services/shared.js.map +1 -1
- package/node_modules/@murphai/inbox-services/dist/index.d.ts +1 -1
- package/node_modules/@murphai/inbox-services/dist/index.d.ts.map +1 -1
- package/node_modules/@murphai/inboxd/README.md +3 -3
- package/node_modules/@murphai/inboxd/dist/connectors/email/normalize-parsed.d.ts.map +1 -1
- package/node_modules/@murphai/inboxd/dist/connectors/email/normalize-parsed.js +56 -5
- package/node_modules/@murphai/inboxd/dist/connectors/email/normalize-parsed.js.map +1 -1
- package/node_modules/@murphai/inboxd/dist/connectors/linq/normalize.js +8 -0
- package/node_modules/@murphai/inboxd/dist/connectors/linq/normalize.js.map +1 -1
- package/node_modules/@murphai/inboxd/dist/connectors/telegram/normalize.d.ts +1 -0
- package/node_modules/@murphai/inboxd/dist/connectors/telegram/normalize.d.ts.map +1 -1
- package/node_modules/@murphai/inboxd/dist/connectors/telegram/normalize.js +1 -0
- package/node_modules/@murphai/inboxd/dist/connectors/telegram/normalize.js.map +1 -1
- package/node_modules/@murphai/inboxd/dist/index.d.ts +0 -5
- package/node_modules/@murphai/inboxd/dist/index.d.ts.map +1 -1
- package/node_modules/@murphai/inboxd/dist/index.js +0 -2
- package/node_modules/@murphai/inboxd/dist/index.js.map +1 -1
- package/node_modules/@murphai/inboxd/dist/indexing/attachment-storage-normalizer.d.ts.map +1 -1
- package/node_modules/@murphai/inboxd/dist/indexing/attachment-storage-normalizer.js +141 -4
- package/node_modules/@murphai/inboxd/dist/indexing/attachment-storage-normalizer.js.map +1 -1
- package/node_modules/@murphai/messaging-ingress/README.md +5 -1
- package/node_modules/@murphai/messaging-ingress/dist/linq-webhook.d.ts +27 -1
- package/node_modules/@murphai/messaging-ingress/dist/linq-webhook.d.ts.map +1 -1
- package/node_modules/@murphai/messaging-ingress/dist/linq-webhook.js +164 -17
- package/node_modules/@murphai/messaging-ingress/dist/linq-webhook.js.map +1 -1
- package/node_modules/@murphai/messaging-ingress/dist/telegram-webhook-payload.d.ts +1 -0
- package/node_modules/@murphai/messaging-ingress/dist/telegram-webhook-payload.d.ts.map +1 -1
- package/node_modules/@murphai/messaging-ingress/dist/telegram-webhook-payload.js +2 -0
- package/node_modules/@murphai/messaging-ingress/dist/telegram-webhook-payload.js.map +1 -1
- package/node_modules/@murphai/operator-config/dist/assistant/codex-resume-state.d.ts +3 -3
- package/node_modules/@murphai/operator-config/dist/assistant/codex-resume-state.d.ts.map +1 -1
- package/node_modules/@murphai/operator-config/dist/assistant/codex-resume-state.js +1 -1
- package/node_modules/@murphai/operator-config/dist/assistant/codex-resume-state.js.map +1 -1
- package/node_modules/@murphai/operator-config/dist/assistant/current-delivery-route.d.ts +1 -1
- package/node_modules/@murphai/operator-config/dist/assistant/current-delivery-route.d.ts.map +1 -1
- package/node_modules/@murphai/operator-config/dist/assistant/current-delivery-route.js +7 -19
- package/node_modules/@murphai/operator-config/dist/assistant/current-delivery-route.js.map +1 -1
- package/node_modules/@murphai/operator-config/dist/assistant/hosted-config.d.ts +31 -33
- package/node_modules/@murphai/operator-config/dist/assistant/hosted-config.d.ts.map +1 -1
- package/node_modules/@murphai/operator-config/dist/assistant/hosted-config.js +5 -8
- package/node_modules/@murphai/operator-config/dist/assistant/hosted-config.js.map +1 -1
- package/node_modules/@murphai/operator-config/dist/assistant/provider-config.d.ts +1 -15
- package/node_modules/@murphai/operator-config/dist/assistant/provider-config.d.ts.map +1 -1
- package/node_modules/@murphai/operator-config/dist/assistant/provider-config.js +52 -84
- package/node_modules/@murphai/operator-config/dist/assistant/provider-config.js.map +1 -1
- package/node_modules/@murphai/operator-config/dist/assistant/target-runtime.d.ts +31 -48
- package/node_modules/@murphai/operator-config/dist/assistant/target-runtime.d.ts.map +1 -1
- package/node_modules/@murphai/operator-config/dist/assistant/target-runtime.js +33 -56
- package/node_modules/@murphai/operator-config/dist/assistant/target-runtime.js.map +1 -1
- package/node_modules/@murphai/operator-config/dist/assistant-backend.d.ts +11 -11
- package/node_modules/@murphai/operator-config/dist/assistant-backend.d.ts.map +1 -1
- package/node_modules/@murphai/operator-config/dist/assistant-backend.js +33 -45
- package/node_modules/@murphai/operator-config/dist/assistant-backend.js.map +1 -1
- package/node_modules/@murphai/operator-config/dist/assistant-cli-contracts.d.ts +1713 -1566
- 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 +193 -23
- 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 +445 -0
- package/node_modules/@murphai/operator-config/dist/assistant-response-cards.d.ts.map +1 -0
- package/node_modules/@murphai/operator-config/dist/assistant-response-cards.js +1030 -0
- package/node_modules/@murphai/operator-config/dist/assistant-response-cards.js.map +1 -0
- package/node_modules/@murphai/operator-config/dist/command-helpers.d.ts +4 -2
- package/node_modules/@murphai/operator-config/dist/command-helpers.d.ts.map +1 -1
- package/node_modules/@murphai/operator-config/dist/command-helpers.js +36 -1
- package/node_modules/@murphai/operator-config/dist/command-helpers.js.map +1 -1
- package/node_modules/@murphai/operator-config/dist/device-cli-contracts.d.ts +181 -181
- package/node_modules/@murphai/operator-config/dist/device-cli-contracts.d.ts.map +1 -1
- package/node_modules/@murphai/operator-config/dist/device-cli-contracts.js +1 -1
- package/node_modules/@murphai/operator-config/dist/device-cli-contracts.js.map +1 -1
- package/node_modules/@murphai/operator-config/dist/device-sync-client.js +1 -1
- package/node_modules/@murphai/operator-config/dist/device-sync-client.js.map +1 -1
- package/node_modules/@murphai/operator-config/dist/elevenlabs-runtime.d.ts +3 -0
- package/node_modules/@murphai/operator-config/dist/elevenlabs-runtime.d.ts.map +1 -1
- package/node_modules/@murphai/operator-config/dist/elevenlabs-runtime.js +301 -63
- package/node_modules/@murphai/operator-config/dist/elevenlabs-runtime.js.map +1 -1
- package/node_modules/@murphai/operator-config/dist/hosted-assistant-config-constants.d.ts +3 -2
- package/node_modules/@murphai/operator-config/dist/hosted-assistant-config-constants.d.ts.map +1 -1
- package/node_modules/@murphai/operator-config/dist/hosted-assistant-config-constants.js +3 -0
- package/node_modules/@murphai/operator-config/dist/hosted-assistant-config-constants.js.map +1 -1
- package/node_modules/@murphai/operator-config/dist/hosted-assistant-config.d.ts.map +1 -1
- package/node_modules/@murphai/operator-config/dist/hosted-assistant-config.js +2 -6
- package/node_modules/@murphai/operator-config/dist/hosted-assistant-config.js.map +1 -1
- package/node_modules/@murphai/operator-config/dist/http-json-retry.d.ts +7 -2
- package/node_modules/@murphai/operator-config/dist/http-json-retry.d.ts.map +1 -1
- package/node_modules/@murphai/operator-config/dist/http-json-retry.js +33 -14
- package/node_modules/@murphai/operator-config/dist/http-json-retry.js.map +1 -1
- package/node_modules/@murphai/operator-config/dist/inbox-cli-contracts.d.ts +427 -462
- package/node_modules/@murphai/operator-config/dist/inbox-cli-contracts.d.ts.map +1 -1
- package/node_modules/@murphai/operator-config/dist/inbox-cli-contracts.js +2 -14
- package/node_modules/@murphai/operator-config/dist/inbox-cli-contracts.js.map +1 -1
- package/node_modules/@murphai/operator-config/dist/linq-runtime.d.ts +35 -1
- package/node_modules/@murphai/operator-config/dist/linq-runtime.d.ts.map +1 -1
- package/node_modules/@murphai/operator-config/dist/linq-runtime.js +1115 -180
- package/node_modules/@murphai/operator-config/dist/linq-runtime.js.map +1 -1
- package/node_modules/@murphai/operator-config/dist/message-formatting.d.ts +1 -0
- package/node_modules/@murphai/operator-config/dist/message-formatting.d.ts.map +1 -1
- package/node_modules/@murphai/operator-config/dist/message-formatting.js +3 -1
- package/node_modules/@murphai/operator-config/dist/message-formatting.js.map +1 -1
- package/node_modules/@murphai/operator-config/dist/message-table-fallback.d.ts +7 -0
- package/node_modules/@murphai/operator-config/dist/message-table-fallback.d.ts.map +1 -0
- package/node_modules/@murphai/operator-config/dist/message-table-fallback.js +109 -0
- package/node_modules/@murphai/operator-config/dist/message-table-fallback.js.map +1 -0
- package/node_modules/@murphai/operator-config/dist/operator-config/self-delivery-targets.d.ts +12 -12
- package/node_modules/@murphai/operator-config/dist/operator-config/self-delivery-targets.d.ts.map +1 -1
- package/node_modules/@murphai/operator-config/dist/operator-config/self-delivery-targets.js +1 -1
- package/node_modules/@murphai/operator-config/dist/operator-config/self-delivery-targets.js.map +1 -1
- package/node_modules/@murphai/operator-config/dist/operator-config.d.ts +50 -53
- package/node_modules/@murphai/operator-config/dist/operator-config.d.ts.map +1 -1
- package/node_modules/@murphai/operator-config/dist/operator-config.js +4 -5
- package/node_modules/@murphai/operator-config/dist/operator-config.js.map +1 -1
- package/node_modules/@murphai/operator-config/dist/setup-cli-contracts.d.ts +225 -226
- package/node_modules/@murphai/operator-config/dist/setup-cli-contracts.d.ts.map +1 -1
- package/node_modules/@murphai/operator-config/dist/setup-cli-contracts.js +2 -2
- package/node_modules/@murphai/operator-config/dist/setup-cli-contracts.js.map +1 -1
- package/node_modules/@murphai/operator-config/dist/setup-runtime-env.d.ts.map +1 -1
- package/node_modules/@murphai/operator-config/dist/setup-runtime-env.js +0 -19
- package/node_modules/@murphai/operator-config/dist/setup-runtime-env.js.map +1 -1
- package/node_modules/@murphai/operator-config/dist/vault-cli-contracts.d.ts +336 -294
- 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 +36 -8
- package/node_modules/@murphai/operator-config/dist/vault-cli-contracts.js.map +1 -1
- package/node_modules/@murphai/operator-config/dist/workout-action-binding.d.ts +5 -0
- package/node_modules/@murphai/operator-config/dist/workout-action-binding.d.ts.map +1 -0
- package/node_modules/@murphai/operator-config/dist/workout-action-binding.js +84 -0
- package/node_modules/@murphai/operator-config/dist/workout-action-binding.js.map +1 -0
- package/node_modules/@murphai/operator-config/package.json +10 -5
- package/node_modules/@murphai/parsers/dist/adapters/ffmpeg.d.ts +2 -0
- package/node_modules/@murphai/parsers/dist/adapters/ffmpeg.d.ts.map +1 -1
- package/node_modules/@murphai/parsers/dist/adapters/ffmpeg.js +18 -0
- package/node_modules/@murphai/parsers/dist/adapters/ffmpeg.js.map +1 -1
- package/node_modules/@murphai/query/README.md +9 -0
- package/node_modules/@murphai/query/dist/automation.d.ts +5 -2
- package/node_modules/@murphai/query/dist/automation.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/automation.js +33 -8
- package/node_modules/@murphai/query/dist/automation.js.map +1 -1
- package/node_modules/@murphai/query/dist/browser-biomarkers.d.ts +2 -2
- package/node_modules/@murphai/query/dist/browser-biomarkers.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/browser-biomarkers.js +1 -1
- package/node_modules/@murphai/query/dist/browser-biomarkers.js.map +1 -1
- package/node_modules/@murphai/query/dist/browser-experiments.d.ts +2 -2
- package/node_modules/@murphai/query/dist/browser-experiments.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/browser-experiments.js +1 -1
- package/node_modules/@murphai/query/dist/browser-experiments.js.map +1 -1
- package/node_modules/@murphai/query/dist/browser-murph-age.d.ts +1 -1
- package/node_modules/@murphai/query/dist/browser-murph-age.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/browser-overview.d.ts +2 -1
- package/node_modules/@murphai/query/dist/browser-overview.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/browser-replica/biomarker-panel.d.ts +2 -2
- package/node_modules/@murphai/query/dist/browser-replica/biomarker-panel.d.ts.map +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 +45 -27
- package/node_modules/@murphai/query/dist/browser-replica/build.js.map +1 -1
- package/node_modules/@murphai/query/dist/browser-replica/client-overview.d.ts +3 -3
- package/node_modules/@murphai/query/dist/browser-replica/client-overview.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/browser-replica/client-overview.js +3 -0
- package/node_modules/@murphai/query/dist/browser-replica/client-overview.js.map +1 -1
- package/node_modules/@murphai/query/dist/browser-replica/device-metrics.d.ts +2 -2
- package/node_modules/@murphai/query/dist/browser-replica/device-metrics.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/browser-replica/device-metrics.js.map +1 -1
- package/node_modules/@murphai/query/dist/browser-replica/experiment-run-cards.d.ts +8 -0
- package/node_modules/@murphai/query/dist/browser-replica/experiment-run-cards.d.ts.map +1 -0
- package/node_modules/@murphai/query/dist/browser-replica/experiment-run-cards.js +548 -0
- package/node_modules/@murphai/query/dist/browser-replica/experiment-run-cards.js.map +1 -0
- package/node_modules/@murphai/query/dist/browser-replica/experiments.d.ts +22 -2
- package/node_modules/@murphai/query/dist/browser-replica/experiments.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/browser-replica/experiments.js +209 -63
- package/node_modules/@murphai/query/dist/browser-replica/experiments.js.map +1 -1
- package/node_modules/@murphai/query/dist/browser-replica/lab-result-status.d.ts +11 -0
- package/node_modules/@murphai/query/dist/browser-replica/lab-result-status.d.ts.map +1 -0
- package/node_modules/@murphai/query/dist/browser-replica/lab-result-status.js +233 -0
- package/node_modules/@murphai/query/dist/browser-replica/lab-result-status.js.map +1 -0
- package/node_modules/@murphai/query/dist/browser-replica/lab-results.d.ts +4 -3
- package/node_modules/@murphai/query/dist/browser-replica/lab-results.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/browser-replica/lab-results.js +24 -5
- package/node_modules/@murphai/query/dist/browser-replica/lab-results.js.map +1 -1
- package/node_modules/@murphai/query/dist/browser-replica/metric-buckets.d.ts +14 -0
- package/node_modules/@murphai/query/dist/browser-replica/metric-buckets.d.ts.map +1 -0
- package/node_modules/@murphai/query/dist/browser-replica/metric-buckets.js +25 -0
- package/node_modules/@murphai/query/dist/browser-replica/metric-buckets.js.map +1 -0
- package/node_modules/@murphai/query/dist/browser-replica/murph-age.d.ts +2 -2
- package/node_modules/@murphai/query/dist/browser-replica/murph-age.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/browser-replica/murph-age.js.map +1 -1
- package/node_modules/@murphai/query/dist/browser-replica/parse.d.ts +8 -0
- package/node_modules/@murphai/query/dist/browser-replica/parse.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/browser-replica/parse.js +327 -7
- package/node_modules/@murphai/query/dist/browser-replica/parse.js.map +1 -1
- package/node_modules/@murphai/query/dist/browser-replica/query.d.ts +24 -1
- package/node_modules/@murphai/query/dist/browser-replica/query.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/browser-replica/query.js +246 -41
- package/node_modules/@murphai/query/dist/browser-replica/query.js.map +1 -1
- package/node_modules/@murphai/query/dist/browser-replica/search-row.d.ts +3 -0
- package/node_modules/@murphai/query/dist/browser-replica/search-row.d.ts.map +1 -0
- package/node_modules/@murphai/query/dist/browser-replica/search-row.js +16 -0
- package/node_modules/@murphai/query/dist/browser-replica/search-row.js.map +1 -0
- package/node_modules/@murphai/query/dist/browser-replica/shards.d.ts +76 -0
- package/node_modules/@murphai/query/dist/browser-replica/shards.d.ts.map +1 -0
- package/node_modules/@murphai/query/dist/browser-replica/shards.js +232 -0
- package/node_modules/@murphai/query/dist/browser-replica/shards.js.map +1 -0
- package/node_modules/@murphai/query/dist/browser-replica/shared.d.ts +143 -9
- package/node_modules/@murphai/query/dist/browser-replica/shared.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/browser-replica/shared.js +1 -0
- package/node_modules/@murphai/query/dist/browser-replica/shared.js.map +1 -1
- package/node_modules/@murphai/query/dist/browser-replica/tracked-experiments.d.ts +3 -3
- package/node_modules/@murphai/query/dist/browser-replica/tracked-experiments.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/browser-replica/tracked-experiments.js.map +1 -1
- package/node_modules/@murphai/query/dist/browser-replica/training.d.ts +7 -0
- package/node_modules/@murphai/query/dist/browser-replica/training.d.ts.map +1 -0
- package/node_modules/@murphai/query/dist/browser-replica/training.js +241 -0
- package/node_modules/@murphai/query/dist/browser-replica/training.js.map +1 -0
- package/node_modules/@murphai/query/dist/browser-replica/views.d.ts +5 -5
- package/node_modules/@murphai/query/dist/browser-replica/views.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/browser-replica/views.js +3 -0
- package/node_modules/@murphai/query/dist/browser-replica/views.js.map +1 -1
- package/node_modules/@murphai/query/dist/browser-replica-client.d.ts +11 -4
- package/node_modules/@murphai/query/dist/browser-replica-client.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/browser-replica-client.js +7 -3
- package/node_modules/@murphai/query/dist/browser-replica-client.js.map +1 -1
- package/node_modules/@murphai/query/dist/browser-replica-server.d.ts +5 -0
- package/node_modules/@murphai/query/dist/browser-replica-server.d.ts.map +1 -0
- package/node_modules/@murphai/query/dist/browser-replica-server.js +5 -0
- package/node_modules/@murphai/query/dist/browser-replica-server.js.map +1 -0
- package/node_modules/@murphai/query/dist/browser-replica.d.ts +13 -5
- package/node_modules/@murphai/query/dist/browser-replica.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/browser-replica.js +9 -4
- package/node_modules/@murphai/query/dist/browser-replica.js.map +1 -1
- package/node_modules/@murphai/query/dist/browser.d.ts +2 -2
- package/node_modules/@murphai/query/dist/browser.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/browser.js +1 -1
- package/node_modules/@murphai/query/dist/browser.js.map +1 -1
- package/node_modules/@murphai/query/dist/canonical-observation-metrics.d.ts +16 -0
- package/node_modules/@murphai/query/dist/canonical-observation-metrics.d.ts.map +1 -0
- package/node_modules/@murphai/query/dist/canonical-observation-metrics.js +70 -0
- package/node_modules/@murphai/query/dist/canonical-observation-metrics.js.map +1 -0
- package/node_modules/@murphai/query/dist/experiment-adherence.d.ts +20 -0
- package/node_modules/@murphai/query/dist/experiment-adherence.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/experiment-adherence.js +175 -29
- package/node_modules/@murphai/query/dist/experiment-adherence.js.map +1 -1
- package/node_modules/@murphai/query/dist/experiment-progress-card.d.ts +1 -0
- package/node_modules/@murphai/query/dist/experiment-progress-card.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/experiment-progress-card.js +1 -0
- package/node_modules/@murphai/query/dist/experiment-progress-card.js.map +1 -1
- package/node_modules/@murphai/query/dist/experiments.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/experiments.js +46 -22
- package/node_modules/@murphai/query/dist/experiments.js.map +1 -1
- package/node_modules/@murphai/query/dist/group-weekly.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/group-weekly.js +52 -1
- package/node_modules/@murphai/query/dist/group-weekly.js.map +1 -1
- package/node_modules/@murphai/query/dist/health/shared.js +1 -1
- package/node_modules/@murphai/query/dist/health/shared.js.map +1 -1
- package/node_modules/@murphai/query/dist/index.d.ts +21 -4
- package/node_modules/@murphai/query/dist/index.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/index.js +14 -3
- package/node_modules/@murphai/query/dist/index.js.map +1 -1
- package/node_modules/@murphai/query/dist/knowledge-contracts.d.ts +78 -75
- package/node_modules/@murphai/query/dist/knowledge-contracts.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/knowledge-contracts.js +2 -1
- package/node_modules/@murphai/query/dist/knowledge-contracts.js.map +1 -1
- package/node_modules/@murphai/query/dist/knowledge-graph.d.ts +1 -0
- package/node_modules/@murphai/query/dist/knowledge-graph.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/knowledge-graph.js +17 -1
- package/node_modules/@murphai/query/dist/knowledge-graph.js.map +1 -1
- package/node_modules/@murphai/query/dist/meal-nutrition.d.ts +26 -0
- package/node_modules/@murphai/query/dist/meal-nutrition.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/meal-nutrition.js +111 -5
- package/node_modules/@murphai/query/dist/meal-nutrition.js.map +1 -1
- package/node_modules/@murphai/query/dist/metrics/index.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/metrics/index.js +14 -1
- package/node_modules/@murphai/query/dist/metrics/index.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 +110 -3
- package/node_modules/@murphai/query/dist/metrics/projection.js.map +1 -1
- package/node_modules/@murphai/query/dist/personal-patterns.d.ts +55 -0
- package/node_modules/@murphai/query/dist/personal-patterns.d.ts.map +1 -0
- package/node_modules/@murphai/query/dist/personal-patterns.js +401 -0
- package/node_modules/@murphai/query/dist/personal-patterns.js.map +1 -0
- 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.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/projection/wearable-summary-projector.js +2 -2
- package/node_modules/@murphai/query/dist/projection/wearable-summary-projector.js.map +1 -1
- package/node_modules/@murphai/query/dist/projection/wearable-summary-stored-codec.js +1 -1
- package/node_modules/@murphai/query/dist/projection/wearable-summary-stored-codec.js.map +1 -1
- package/node_modules/@murphai/query/dist/query-projection.d.ts +14 -0
- package/node_modules/@murphai/query/dist/query-projection.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/query-projection.js +31 -0
- package/node_modules/@murphai/query/dist/query-projection.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 +6 -0
- 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 +37 -2
- package/node_modules/@murphai/query/dist/wearables/public-output.js.map +1 -1
- package/node_modules/@murphai/query/dist/wearables/sleep-pattern.d.ts +5 -1
- package/node_modules/@murphai/query/dist/wearables/sleep-pattern.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/wearables/sleep-pattern.js +16 -3
- package/node_modules/@murphai/query/dist/wearables/sleep-pattern.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 +27 -4
- package/node_modules/@murphai/query/dist/wearables/source-health.js.map +1 -1
- package/node_modules/@murphai/query/dist/wearables/types.d.ts +17 -4
- package/node_modules/@murphai/query/dist/wearables/types.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/wearables/types.js +34 -0
- package/node_modules/@murphai/query/dist/wearables/types.js.map +1 -1
- package/node_modules/@murphai/query/dist/wearables.d.ts.map +1 -1
- package/node_modules/@murphai/query/dist/wearables.js +55 -4
- package/node_modules/@murphai/query/dist/wearables.js.map +1 -1
- package/node_modules/@murphai/query/package.json +10 -0
- package/node_modules/@murphai/runtime-state/README.md +2 -2
- package/node_modules/@murphai/runtime-state/dist/assistant-local-state-descriptors.d.ts.map +1 -1
- package/node_modules/@murphai/runtime-state/dist/assistant-local-state-descriptors.js +15 -2
- package/node_modules/@murphai/runtime-state/dist/assistant-local-state-descriptors.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 +45 -20
- package/node_modules/@murphai/runtime-state/dist/hosted-bundles.js.map +1 -1
- package/node_modules/@murphai/runtime-state/dist/hosted-crypto-keyrings.d.ts +32 -1
- package/node_modules/@murphai/runtime-state/dist/hosted-crypto-keyrings.d.ts.map +1 -1
- package/node_modules/@murphai/runtime-state/dist/hosted-crypto-keyrings.js +327 -0
- package/node_modules/@murphai/runtime-state/dist/hosted-crypto-keyrings.js.map +1 -1
- package/node_modules/@murphai/runtime-state/dist/hosted-domain-crypto.d.ts +3 -1
- package/node_modules/@murphai/runtime-state/dist/hosted-domain-crypto.d.ts.map +1 -1
- package/node_modules/@murphai/runtime-state/dist/hosted-domain-crypto.js +23 -3
- package/node_modules/@murphai/runtime-state/dist/hosted-domain-crypto.js.map +1 -1
- package/node_modules/@murphai/runtime-state/dist/hosted-storage.d.ts +1 -1
- package/node_modules/@murphai/runtime-state/dist/hosted-storage.d.ts.map +1 -1
- package/node_modules/@murphai/runtime-state/dist/hosted-storage.js +1 -0
- package/node_modules/@murphai/runtime-state/dist/hosted-storage.js.map +1 -1
- package/node_modules/@murphai/runtime-state/dist/sqlite.d.ts.map +1 -1
- package/node_modules/@murphai/runtime-state/dist/sqlite.js +22 -6
- package/node_modules/@murphai/runtime-state/dist/sqlite.js.map +1 -1
- package/node_modules/@murphai/setup-cli/README.md +1 -1
- package/node_modules/@murphai/setup-cli/dist/index.d.ts +0 -1
- package/node_modules/@murphai/setup-cli/dist/index.d.ts.map +1 -1
- package/node_modules/@murphai/setup-cli/dist/index.js +0 -1
- package/node_modules/@murphai/setup-cli/dist/index.js.map +1 -1
- package/node_modules/@murphai/setup-cli/dist/setup-assistant-account.js +1 -1
- package/node_modules/@murphai/setup-cli/dist/setup-assistant-account.js.map +1 -1
- package/node_modules/@murphai/setup-cli/dist/setup-assistant-defaults.d.ts.map +1 -1
- package/node_modules/@murphai/setup-cli/dist/setup-assistant-defaults.js +14 -24
- package/node_modules/@murphai/setup-cli/dist/setup-assistant-defaults.js.map +1 -1
- package/node_modules/@murphai/setup-cli/dist/setup-assistant.js +1 -1
- package/node_modules/@murphai/setup-cli/dist/setup-assistant.js.map +1 -1
- package/node_modules/@murphai/setup-cli/dist/setup-cli.d.ts +1 -2
- package/node_modules/@murphai/setup-cli/dist/setup-cli.d.ts.map +1 -1
- package/node_modules/@murphai/setup-cli/dist/setup-cli.js +2 -4
- package/node_modules/@murphai/setup-cli/dist/setup-cli.js.map +1 -1
- package/node_modules/@murphai/setup-cli/dist/setup-services/channels.d.ts +0 -4
- package/node_modules/@murphai/setup-cli/dist/setup-services/channels.d.ts.map +1 -1
- package/node_modules/@murphai/setup-cli/dist/setup-services/channels.js +126 -420
- package/node_modules/@murphai/setup-cli/dist/setup-services/channels.js.map +1 -1
- package/node_modules/@murphai/setup-cli/dist/setup-services.d.ts +0 -3
- package/node_modules/@murphai/setup-cli/dist/setup-services.d.ts.map +1 -1
- package/node_modules/@murphai/setup-cli/dist/setup-services.js +0 -7
- package/node_modules/@murphai/setup-cli/dist/setup-services.js.map +1 -1
- package/node_modules/@murphai/setup-cli/dist/setup-wizard-options.d.ts.map +1 -1
- package/node_modules/@murphai/setup-cli/dist/setup-wizard-options.js +0 -7
- package/node_modules/@murphai/setup-cli/dist/setup-wizard-options.js.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/clinical-records.js +1 -1
- package/node_modules/@murphai/vault-usecases/dist/clinical-records.js.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/experiment-onboarding-options.d.ts +3 -3
- package/node_modules/@murphai/vault-usecases/dist/experiment-onboarding-options.d.ts.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/experiment-onboarding-options.js +1 -1
- package/node_modules/@murphai/vault-usecases/dist/experiment-onboarding-options.js.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/export-packs.d.ts +7 -0
- package/node_modules/@murphai/vault-usecases/dist/export-packs.d.ts.map +1 -0
- package/node_modules/@murphai/vault-usecases/dist/export-packs.js +45 -0
- package/node_modules/@murphai/vault-usecases/dist/export-packs.js.map +1 -0
- package/node_modules/@murphai/vault-usecases/dist/health-cli-descriptors.d.ts +28 -28
- package/node_modules/@murphai/vault-usecases/dist/health-cli-descriptors.d.ts.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/health-cli-descriptors.js +1 -1
- package/node_modules/@murphai/vault-usecases/dist/health-cli-descriptors.js.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/json-input.d.ts +1 -1
- package/node_modules/@murphai/vault-usecases/dist/json-input.d.ts.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/json-input.js +1 -1
- package/node_modules/@murphai/vault-usecases/dist/json-input.js.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/query-runtime.d.ts +5 -1
- package/node_modules/@murphai/vault-usecases/dist/query-runtime.d.ts.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/query-runtime.js.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/testing/junction-wearable-fixture.d.ts +1 -1
- package/node_modules/@murphai/vault-usecases/dist/testing/junction-wearable-fixture.d.ts.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/capture.d.ts +21 -21
- package/node_modules/@murphai/vault-usecases/dist/usecases/capture.d.ts.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/capture.js +1 -1
- 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 +193 -193
- 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 -1
- 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 +12 -12
- 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 +1 -1
- 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 +130 -130
- 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 -1
- 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 +1 -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 +22 -0
- package/node_modules/@murphai/vault-usecases/dist/usecases/event-record-mutations.js.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/experiment-journal-vault.d.ts +28 -5
- 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 +225 -37
- package/node_modules/@murphai/vault-usecases/dist/usecases/experiment-journal-vault.js.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/food-autolog.d.ts +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/food-autolog.d.ts.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/food-autolog.js +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/food-autolog.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 +0 -1
- 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 +77 -9
- package/node_modules/@murphai/vault-usecases/dist/usecases/integrated-services.js.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/measurement-read.d.ts +95 -13
- 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 +136 -3
- package/node_modules/@murphai/vault-usecases/dist/usecases/measurement-read.js.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/measurement.d.ts.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/measurement.js +3 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/measurement.js.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/provider-event.d.ts +4 -4
- 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 +1 -1
- 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 +3 -3
- package/node_modules/@murphai/vault-usecases/dist/usecases/recipe.d.ts.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/recipe.js +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/recipe.js.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/runtime.d.ts.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/runtime.js +2 -0
- package/node_modules/@murphai/vault-usecases/dist/usecases/runtime.js.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/types.d.ts +44 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/types.d.ts.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout-core.d.ts +7 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout-core.d.ts.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout-core.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-import.d.ts +60 -7
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout-import.d.ts.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout-import.js +1282 -494
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout-import.js.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-model.d.ts +84 -0
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-model.d.ts.map +1 -0
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-model.js +195 -0
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-model.js.map +1 -0
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-state.d.ts +36 -0
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-state.d.ts.map +1 -0
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-state.js +285 -0
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-state.js.map +1 -0
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live.d.ts +122 -0
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live.d.ts.map +1 -0
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live.js +507 -0
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live.js.map +1 -0
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout-model.d.ts +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout-model.d.ts.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout-model.js +2 -0
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout-model.js.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout-read.d.ts +13 -13
- 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 +3 -2
- 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 +25 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout.d.ts.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout.js +118 -3
- package/node_modules/@murphai/vault-usecases/dist/usecases/workout.js.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/vault-services.d.ts.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/vault-services.js +3 -0
- package/node_modules/@murphai/vault-usecases/dist/vault-services.js.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/workouts.d.ts +1 -0
- package/node_modules/@murphai/vault-usecases/dist/workouts.d.ts.map +1 -1
- package/node_modules/@murphai/vault-usecases/dist/workouts.js +1 -0
- package/node_modules/@murphai/vault-usecases/dist/workouts.js.map +1 -1
- package/node_modules/@murphai/vault-usecases/package.json +4 -0
- package/node_modules/ink/build/ansi-tokenizer.d.ts +38 -0
- package/node_modules/ink/build/ansi-tokenizer.js +316 -0
- package/node_modules/ink/build/ansi-tokenizer.js.map +1 -0
- package/node_modules/ink/build/apply-styles.js +175 -0
- package/node_modules/ink/build/build-layout.js +77 -0
- package/node_modules/ink/build/calculate-wrapped-text.js +53 -0
- package/node_modules/ink/build/colorize.d.ts +3 -0
- package/node_modules/ink/build/colorize.js +48 -0
- package/node_modules/ink/build/colorize.js.map +1 -0
- package/node_modules/ink/build/components/AccessibilityContext.d.ts +3 -0
- package/node_modules/ink/build/components/AccessibilityContext.js +5 -0
- package/node_modules/ink/build/components/AccessibilityContext.js.map +1 -0
- package/node_modules/ink/build/components/App.d.ts +18 -0
- package/node_modules/ink/build/components/App.js +351 -0
- package/node_modules/ink/build/components/App.js.map +1 -0
- package/node_modules/ink/build/components/AppContext.d.ts +15 -0
- package/node_modules/ink/build/components/AppContext.js +11 -0
- package/node_modules/ink/build/components/AppContext.js.map +1 -0
- package/node_modules/ink/build/components/BackgroundContext.d.ts +4 -0
- package/node_modules/ink/build/components/BackgroundContext.js +3 -0
- package/node_modules/ink/build/components/BackgroundContext.js.map +1 -0
- package/node_modules/ink/build/components/Box.d.ts +117 -0
- package/node_modules/ink/build/components/Box.js +34 -0
- package/node_modules/ink/build/components/Box.js.map +1 -0
- package/node_modules/ink/build/components/Color.js +62 -0
- package/node_modules/ink/build/components/Cursor.d.ts +83 -0
- package/node_modules/ink/build/components/Cursor.js +53 -0
- package/node_modules/ink/build/components/Cursor.js.map +1 -0
- package/node_modules/ink/build/components/CursorContext.d.ts +11 -0
- package/node_modules/ink/build/components/CursorContext.js +8 -0
- package/node_modules/ink/build/components/CursorContext.js.map +1 -0
- package/node_modules/ink/build/components/ErrorBoundary.d.ts +18 -0
- package/node_modules/ink/build/components/ErrorBoundary.js +23 -0
- package/node_modules/ink/build/components/ErrorBoundary.js.map +1 -0
- package/node_modules/ink/build/components/ErrorOverview.d.ts +6 -0
- package/node_modules/ink/build/components/ErrorOverview.js +84 -0
- package/node_modules/ink/build/components/ErrorOverview.js.map +1 -0
- package/node_modules/ink/build/components/FocusContext.d.ts +16 -0
- package/node_modules/ink/build/components/FocusContext.js +17 -0
- package/node_modules/ink/build/components/FocusContext.js.map +1 -0
- package/node_modules/ink/build/components/Newline.d.ts +13 -0
- package/node_modules/ink/build/components/Newline.js +8 -0
- package/node_modules/ink/build/components/Newline.js.map +1 -0
- package/node_modules/ink/build/components/Spacer.d.ts +7 -0
- package/node_modules/ink/build/components/Spacer.js +11 -0
- package/node_modules/ink/build/components/Spacer.js.map +1 -0
- package/node_modules/ink/build/components/Static.d.ts +24 -0
- package/node_modules/ink/build/components/Static.js +28 -0
- package/node_modules/ink/build/components/Static.js.map +1 -0
- package/node_modules/ink/build/components/StderrContext.d.ts +15 -0
- package/node_modules/ink/build/components/StderrContext.js +13 -0
- package/node_modules/ink/build/components/StderrContext.js.map +1 -0
- package/node_modules/ink/build/components/StdinContext.d.ts +22 -0
- package/node_modules/ink/build/components/StdinContext.js +19 -0
- package/node_modules/ink/build/components/StdinContext.js.map +1 -0
- package/node_modules/ink/build/components/StdoutContext.d.ts +15 -0
- package/node_modules/ink/build/components/StdoutContext.js +13 -0
- package/node_modules/ink/build/components/StdoutContext.js.map +1 -0
- package/node_modules/ink/build/components/Text.d.ts +55 -0
- package/node_modules/ink/build/components/Text.js +50 -0
- package/node_modules/ink/build/components/Text.js.map +1 -0
- package/node_modules/ink/build/components/Transform.d.ts +16 -0
- package/node_modules/ink/build/components/Transform.js +15 -0
- package/node_modules/ink/build/components/Transform.js.map +1 -0
- package/node_modules/ink/build/cursor-helpers.d.ts +38 -0
- package/node_modules/ink/build/cursor-helpers.js +56 -0
- package/node_modules/ink/build/cursor-helpers.js.map +1 -0
- package/node_modules/ink/build/devtools-window-polyfill.d.ts +1 -0
- package/node_modules/ink/build/devtools-window-polyfill.js +65 -0
- package/node_modules/ink/build/devtools-window-polyfill.js.map +1 -0
- package/node_modules/ink/build/devtools.d.ts +1 -0
- package/node_modules/ink/build/devtools.js +11 -0
- package/node_modules/ink/build/devtools.js.map +1 -0
- package/node_modules/ink/build/dom.d.ts +56 -0
- package/node_modules/ink/build/dom.js +124 -0
- package/node_modules/ink/build/dom.js.map +1 -0
- package/node_modules/ink/build/experimental/apply-style.js +140 -0
- package/node_modules/ink/build/experimental/dom.js +123 -0
- package/node_modules/ink/build/experimental/output.js +91 -0
- package/node_modules/ink/build/experimental/reconciler.js +141 -0
- package/node_modules/ink/build/experimental/renderer.js +81 -0
- package/node_modules/ink/build/get-max-width.d.ts +3 -0
- package/node_modules/ink/build/get-max-width.js +10 -0
- package/node_modules/ink/build/get-max-width.js.map +1 -0
- package/node_modules/ink/build/hooks/use-app.d.ts +5 -0
- package/node_modules/ink/build/hooks/use-app.js +8 -0
- package/node_modules/ink/build/hooks/use-app.js.map +1 -0
- package/node_modules/ink/build/hooks/use-cursor.d.ts +12 -0
- package/node_modules/ink/build/hooks/use-cursor.js +29 -0
- package/node_modules/ink/build/hooks/use-cursor.js.map +1 -0
- package/node_modules/ink/build/hooks/use-focus-manager.d.ts +28 -0
- package/node_modules/ink/build/hooks/use-focus-manager.js +17 -0
- package/node_modules/ink/build/hooks/use-focus-manager.js.map +1 -0
- package/node_modules/ink/build/hooks/use-focus.d.ts +29 -0
- package/node_modules/ink/build/hooks/use-focus.js +42 -0
- package/node_modules/ink/build/hooks/use-focus.js.map +1 -0
- package/node_modules/ink/build/hooks/use-input.d.ts +131 -0
- package/node_modules/ink/build/hooks/use-input.js +124 -0
- package/node_modules/ink/build/hooks/use-input.js.map +1 -0
- package/node_modules/ink/build/hooks/use-is-screen-reader-enabled.d.ts +5 -0
- package/node_modules/ink/build/hooks/use-is-screen-reader-enabled.js +11 -0
- package/node_modules/ink/build/hooks/use-is-screen-reader-enabled.js.map +1 -0
- package/node_modules/ink/build/hooks/use-stderr.d.ts +5 -0
- package/node_modules/ink/build/hooks/use-stderr.js +8 -0
- package/node_modules/ink/build/hooks/use-stderr.js.map +1 -0
- package/node_modules/ink/build/hooks/use-stdin.d.ts +5 -0
- package/node_modules/ink/build/hooks/use-stdin.js +8 -0
- package/node_modules/ink/build/hooks/use-stdin.js.map +1 -0
- package/node_modules/ink/build/hooks/use-stdout.d.ts +5 -0
- package/node_modules/ink/build/hooks/use-stdout.js +8 -0
- package/node_modules/ink/build/hooks/use-stdout.js.map +1 -0
- package/node_modules/ink/build/hooks/useInput.js +38 -0
- package/node_modules/ink/build/index.d.ts +34 -0
- package/node_modules/ink/build/index.js +20 -0
- package/node_modules/ink/build/index.js.map +1 -0
- package/node_modules/ink/build/ink.d.ts +90 -0
- package/node_modules/ink/build/ink.js +637 -0
- package/node_modules/ink/build/ink.js.map +1 -0
- package/node_modules/ink/build/input-parser.d.ts +7 -0
- package/node_modules/ink/build/input-parser.js +154 -0
- package/node_modules/ink/build/input-parser.js.map +1 -0
- package/node_modules/ink/build/instance.js +205 -0
- package/node_modules/ink/build/instances.d.ts +3 -0
- package/node_modules/ink/build/instances.js +8 -0
- package/node_modules/ink/build/instances.js.map +1 -0
- package/node_modules/ink/build/kitty-keyboard.d.ts +23 -0
- package/node_modules/ink/build/kitty-keyboard.js +32 -0
- package/node_modules/ink/build/kitty-keyboard.js.map +1 -0
- package/node_modules/ink/build/layout.d.ts +7 -0
- package/node_modules/ink/build/layout.js +33 -0
- package/node_modules/ink/build/layout.js.map +1 -0
- package/node_modules/ink/build/log-update.d.ts +19 -0
- package/node_modules/ink/build/log-update.js +242 -0
- package/node_modules/ink/build/log-update.js.map +1 -0
- package/node_modules/ink/build/measure-element.d.ts +16 -0
- package/node_modules/ink/build/measure-element.js +9 -0
- package/node_modules/ink/build/measure-element.js.map +1 -0
- package/node_modules/ink/build/measure-text.d.ts +6 -0
- package/node_modules/ink/build/measure-text.js +21 -0
- package/node_modules/ink/build/measure-text.js.map +1 -0
- package/node_modules/ink/build/options.d.ts +52 -0
- package/node_modules/ink/build/options.js +2 -0
- package/node_modules/ink/build/options.js.map +1 -0
- package/node_modules/ink/build/output.d.ts +35 -0
- package/node_modules/ink/build/output.js +183 -0
- package/node_modules/ink/build/output.js.map +1 -0
- package/node_modules/ink/build/parse-keypress.d.ts +22 -0
- package/node_modules/ink/build/parse-keypress.js +493 -0
- package/node_modules/ink/build/parse-keypress.js.map +1 -0
- package/node_modules/ink/build/reconciler.d.ts +4 -0
- package/node_modules/ink/build/reconciler.js +274 -0
- package/node_modules/ink/build/reconciler.js.map +1 -0
- package/node_modules/ink/build/render-background.d.ts +4 -0
- package/node_modules/ink/build/render-background.js +25 -0
- package/node_modules/ink/build/render-background.js.map +1 -0
- package/node_modules/ink/build/render-border.d.ts +4 -0
- package/node_modules/ink/build/render-border.js +73 -0
- package/node_modules/ink/build/render-border.js.map +1 -0
- package/node_modules/ink/build/render-node-to-output.d.ts +14 -0
- package/node_modules/ink/build/render-node-to-output.js +147 -0
- package/node_modules/ink/build/render-node-to-output.js.map +1 -0
- package/node_modules/ink/build/render-to-string.d.ts +38 -0
- package/node_modules/ink/build/render-to-string.js +115 -0
- package/node_modules/ink/build/render-to-string.js.map +1 -0
- package/node_modules/ink/build/render.d.ts +121 -0
- package/node_modules/ink/build/render.js +55 -0
- package/node_modules/ink/build/render.js.map +1 -0
- package/node_modules/ink/build/renderer.d.ts +8 -0
- package/node_modules/ink/build/renderer.js +55 -0
- package/node_modules/ink/build/renderer.js.map +1 -0
- package/node_modules/ink/build/sanitize-ansi.d.ts +2 -0
- package/node_modules/ink/build/sanitize-ansi.js +27 -0
- package/node_modules/ink/build/sanitize-ansi.js.map +1 -0
- package/node_modules/ink/build/screen-reader-update.d.ts +13 -0
- package/node_modules/ink/build/screen-reader-update.js +38 -0
- package/node_modules/ink/build/screen-reader-update.js.map +1 -0
- package/node_modules/ink/build/squash-text-nodes.d.ts +3 -0
- package/node_modules/ink/build/squash-text-nodes.js +36 -0
- package/node_modules/ink/build/squash-text-nodes.js.map +1 -0
- package/node_modules/ink/build/styles.d.ts +240 -0
- package/node_modules/ink/build/styles.js +232 -0
- package/node_modules/ink/build/styles.js.map +1 -0
- package/node_modules/ink/build/utils.d.ts +2 -0
- package/node_modules/ink/build/utils.js +4 -0
- package/node_modules/ink/build/utils.js.map +1 -0
- package/node_modules/ink/build/wrap-text.d.ts +3 -0
- package/node_modules/ink/build/wrap-text.js +31 -0
- package/node_modules/ink/build/wrap-text.js.map +1 -0
- package/node_modules/ink/build/write-synchronized.d.ts +4 -0
- package/node_modules/ink/build/write-synchronized.js +7 -0
- package/node_modules/ink/build/write-synchronized.js.map +1 -0
- package/node_modules/ink/package.json +126 -0
- package/package.json +35 -5
- package/node_modules/@murphai/assistant-engine/dist/assistant/group-phone-call-preview-authority.d.ts +0 -24
- package/node_modules/@murphai/assistant-engine/dist/assistant/group-phone-call-preview-authority.d.ts.map +0 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/group-phone-call-preview-authority.js +0 -125
- package/node_modules/@murphai/assistant-engine/dist/assistant/group-phone-call-preview-authority.js.map +0 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/newsletter-outbox.d.ts +0 -19
- package/node_modules/@murphai/assistant-engine/dist/assistant/newsletter-outbox.d.ts.map +0 -1
- package/node_modules/@murphai/assistant-engine/dist/assistant/newsletter-outbox.js.map +0 -1
- package/node_modules/@murphai/assistant-engine/skills/general-eye-health/SKILL.md +0 -77
- package/node_modules/@murphai/assistant-engine/skills/general-eye-health/references/evidence-register.md +0 -34
- package/node_modules/@murphai/assistant-engine/skills/general-eye-health/references/triage-and-contact-lenses.md +0 -103
- package/node_modules/@murphai/assistant-engine/skills/recovery-modalities/SKILL.md +0 -57
- package/node_modules/@murphai/assistant-engine/skills/red-light-therapy/SKILL.md +0 -145
- package/node_modules/@murphai/assistant-engine/skills/red-light-therapy/device-seeds.json +0 -259
- package/node_modules/@murphai/inboxd/dist/connectors/email/connector.d.ts +0 -57
- package/node_modules/@murphai/inboxd/dist/connectors/email/connector.d.ts.map +0 -1
- package/node_modules/@murphai/inboxd/dist/connectors/email/connector.js +0 -259
- package/node_modules/@murphai/inboxd/dist/connectors/email/connector.js.map +0 -1
- package/node_modules/@murphai/inboxd/dist/connectors/email/normalize.d.ts +0 -44
- package/node_modules/@murphai/inboxd/dist/connectors/email/normalize.d.ts.map +0 -1
- package/node_modules/@murphai/inboxd/dist/connectors/email/normalize.js +0 -212
- package/node_modules/@murphai/inboxd/dist/connectors/email/normalize.js.map +0 -1
- package/node_modules/@murphai/inboxd/dist/connectors/email/types.d.ts +0 -69
- package/node_modules/@murphai/inboxd/dist/connectors/email/types.d.ts.map +0 -1
- package/node_modules/@murphai/inboxd/dist/connectors/email/types.js +0 -2
- package/node_modules/@murphai/inboxd/dist/connectors/email/types.js.map +0 -1
- package/node_modules/@murphai/operator-config/dist/agentmail-runtime.d.ts +0 -194
- package/node_modules/@murphai/operator-config/dist/agentmail-runtime.d.ts.map +0 -1
- package/node_modules/@murphai/operator-config/dist/agentmail-runtime.js +0 -385
- package/node_modules/@murphai/operator-config/dist/agentmail-runtime.js.map +0 -1
- package/node_modules/@murphai/setup-cli/dist/setup-agentmail.d.ts +0 -30
- package/node_modules/@murphai/setup-cli/dist/setup-agentmail.d.ts.map +0 -1
- package/node_modules/@murphai/setup-cli/dist/setup-agentmail.js +0 -135
- package/node_modules/@murphai/setup-cli/dist/setup-agentmail.js.map +0 -1
- package/node_modules/incur/src/Cli.test.ts +0 -4808
- package/node_modules/incur/src/Completions.test.ts +0 -543
- package/node_modules/incur/src/Errors.test.ts +0 -100
- package/node_modules/incur/src/Fetch.test.ts +0 -285
- package/node_modules/incur/src/Filter.test.ts +0 -237
- package/node_modules/incur/src/Formatter.test.ts +0 -326
- package/node_modules/incur/src/Help.test.ts +0 -414
- package/node_modules/incur/src/Mcp.test.ts +0 -413
- package/node_modules/incur/src/Openapi.test.ts +0 -389
- package/node_modules/incur/src/Parser.test.ts +0 -378
- package/node_modules/incur/src/Schema.test.ts +0 -167
- package/node_modules/incur/src/Skill.test.ts +0 -441
- package/node_modules/incur/src/Skillgen.test.ts +0 -77
- package/node_modules/incur/src/SyncMcp.test.ts +0 -136
- package/node_modules/incur/src/SyncSkills.test.ts +0 -301
- package/node_modules/incur/src/Typegen.test.ts +0 -205
- package/node_modules/incur/src/bun-compile.test.ts +0 -84
- package/node_modules/incur/src/e2e.test.ts +0 -3441
- package/node_modules/incur/src/internal/configSchema.test.ts +0 -193
- package/node_modules/incur/src/internal/dereference.test.ts +0 -695
- package/node_modules/incur/src/internal/helpers.test.ts +0 -75
- package/node_modules/incur/src/internal/pm.test.ts +0 -38
- package/node_modules/incur/src/internal/utils.test.ts +0 -50
- package/node_modules/incur/src/middleware.test.ts +0 -6
|
@@ -3,23 +3,27 @@ import { createHash } from 'node:crypto';
|
|
|
3
3
|
import { mkdtemp, rm, stat } from 'node:fs/promises';
|
|
4
4
|
import { tmpdir } from 'node:os';
|
|
5
5
|
import path from 'node:path';
|
|
6
|
+
import { MURPH_MEMBER_WORKSPACE_PERMISSION_PROFILE, } from '@murphai/hosted-execution/assistant-permissions';
|
|
6
7
|
import { normalizeNullableString } from '@murphai/operator-config/text/shared';
|
|
7
8
|
import { VaultCliError } from '@murphai/operator-config/vault-cli-errors';
|
|
8
9
|
import { readHostedCanonicalWritePort, withHostedCanonicalWritePort, } from '@murphai/core';
|
|
10
|
+
import { renderAssistantResponseCardText, renderAssistantResponseCardTranscriptText, renderAssistantWorkoutResponseCardText, renderAssistantWorkoutResponseCardTranscriptText, } from '@murphai/operator-config/assistant-response-cards';
|
|
9
11
|
import { registerStopWarmCodexAppServer, registerWaitForWarmCodexBackgroundWork, } from './codex-lifecycle.js';
|
|
10
12
|
import { extractAssistantMessageFallback, extractCodexErrorInfo, extractCodexErrorMessage, extractCodexCompletedFinalAgentMessageTextFromNormalized, extractCodexProgressEventFromNormalized, isCodexCompletedFinalAgentMessageItemFromNormalized, isCodexCompletedUserMessageItemFromNormalized, extractCodexStatusEventFromStderrLine, extractCodexTraceUpdatesFromNormalized, extractCodexContextCompactionProgressTextFromNormalized, normalizeCodexEvent, normalizeStreamingText, } from './assistant-codex-events.js';
|
|
11
13
|
import { buildCodexTurnInterruptParams, buildCodexThreadResumeParams, buildCodexThreadStartParams, buildCodexTurnSteerParams, buildCodexTurnStartParams, mapCodexAppServerApprovalPolicy, mapCodexAppServerSandboxMode, resolveSupportedCodexAppServerApprovalPolicy, } from './assistant-codex/app-server-requests.js';
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
+
import { createCodexActionDiagnosticsReducer, createCodexActionRuntimeIssueTracker, } from './assistant-codex/action-diagnostics.js';
|
|
15
|
+
import { MURPH_ASSISTANT_STYLE_TOOL, MURPH_GROUP_ROOM_MODEL_TOOL, } from './assistant-codex/dynamic-tool-catalog.js';
|
|
14
16
|
import { createAskGrokTurnState, } from './assistant-codex/ask-grok-tool.js';
|
|
15
17
|
import { attachCodexAppServerProcessExitCleanup, attachCodexAbortListener, consumeCompleteLines, denyUnsupportedCodexServerRequest, rejectCodexServerRequest, readCodexRpcResponseId, readCodexRpcServerRequestId, rejectPendingCodexRpcRequests, resolvePendingCodexRpcRequest, signalCodexAppServerChild, stopCodexAppServerChild, stripUndefinedRpcParams, tryParseJsonLine, waitForCodexSpawn, withCodexRpcTimeout, writeCodexRpcMessage, } from './assistant-codex/app-server-rpc.js';
|
|
18
|
+
import { readCodexNonEmptyString, readCodexRecord, readCodexThreadTokenUsage, } from './assistant-codex/app-server-protocol.js';
|
|
16
19
|
import { resolveCodexChildEnv, withHostedCodexModelCatalogConfigOverride, } from './assistant-codex/config.js';
|
|
17
20
|
import { buildCodexProcessExitError, buildCodexStdinFailureFallback, buildCodexTurnFailedError, extractCodexThreadIdFromMessage, extractCodexThreadIdFromResult, extractCodexThreadPathFromResult, extractCodexTurnErrorMessage, extractCodexTurnIdFromMessage, extractCodexTurnIdFromResult, extractCodexTurnStatus, isFailedCodexTurnStatus, readNodeErrorCode, } from './assistant-codex/failures.js';
|
|
18
21
|
import { extractCodexSubagentUsageDrafts, isAssistantCodexTokenUsageEventType, readCodexCollabReceiverThreadIds, } from './assistant/providers/helpers.js';
|
|
19
|
-
import {
|
|
20
|
-
import { normalizeAssistantResponseMediaList, } from './assistant/response-media.js';
|
|
22
|
+
import { materializeCodexImages, normalizeCodexAppServerImageDetails, } from './assistant-codex/images.js';
|
|
23
|
+
import { ASSISTANT_AUTHORED_RESPONSE_MEDIA_MAX_ITEMS, normalizeAssistantResponseMediaList, } from './assistant/response-media.js';
|
|
24
|
+
import { completeAssistantProviderStartCriticalPath, readAssistantProviderStartMonotonicTickMs, stampAssistantProviderStartCriticalPath, } from './assistant/provider-start-critical-path.js';
|
|
21
25
|
export { extractCodexTraceUpdates } from './assistant-codex-events.js';
|
|
22
|
-
export { listMurphDynamicToolNames, resolveMurphDynamicTools, } from './assistant-codex/dynamic-
|
|
26
|
+
export { listMurphDynamicToolNames, resolveMurphDynamicTools, } from './assistant-codex/dynamic-tool-catalog.js';
|
|
23
27
|
export { resolveCodexDisplayOptions } from './assistant-codex/config.js';
|
|
24
28
|
const CODEX_RPC_CLIENT_NAME = 'murph';
|
|
25
29
|
const CODEX_RPC_CLIENT_TITLE = 'Murph';
|
|
@@ -29,6 +33,12 @@ const CODEX_BACKGROUND_WORK_RPC_TIMEOUT_MS = 5_000;
|
|
|
29
33
|
const CODEX_BACKGROUND_WORK_WAIT_TIMEOUT_MS = 120_000;
|
|
30
34
|
const CODEX_BACKGROUND_WORK_POLL_INTERVAL_MS = 50;
|
|
31
35
|
const CODEX_RPC_STEER_TIMEOUT_MS = 15_000;
|
|
36
|
+
let murphDynamicToolRuntimePromise = null;
|
|
37
|
+
function loadMurphDynamicToolRuntime() {
|
|
38
|
+
murphDynamicToolRuntimePromise ??=
|
|
39
|
+
import('./assistant-codex/dynamic-tools.js');
|
|
40
|
+
return murphDynamicToolRuntimePromise;
|
|
41
|
+
}
|
|
32
42
|
const CODEX_APP_SERVER_INTERRUPT_CLEANUP_TIMEOUT_MS = 15_000;
|
|
33
43
|
const CODEX_MANAGED_ACCOUNT_LOGIN_TIMEOUT_MS = 10 * 60 * 1000;
|
|
34
44
|
const CODEX_MANAGED_ACCOUNT_CONFIG_OVERRIDES = [
|
|
@@ -40,6 +50,8 @@ const CODEX_APP_SERVER_TIMING_TRACE_SCHEMA = 'murph.assistant-codex-app-server-t
|
|
|
40
50
|
const CODEX_APP_SERVER_TIMING_TRACE_TYPE = 'assistant.codex.app_server_timing';
|
|
41
51
|
const CODEX_TRANSPORT_DIAGNOSTICS_TRACE_SCHEMA = 'murph.assistant-codex-transport-diagnostics.v1';
|
|
42
52
|
const CODEX_TRANSPORT_DIAGNOSTICS_TRACE_TYPE = 'assistant.codex.transport_diagnostics';
|
|
53
|
+
const CODEX_GENERATED_AUDIO_PHASE_TIMING_TRACE_SCHEMA = 'murph.assistant-codex-generated-audio-phase-timing.v1';
|
|
54
|
+
const CODEX_GENERATED_AUDIO_PHASE_TIMING_TRACE_TYPE = 'assistant.codex.generated_audio_phase_timing';
|
|
43
55
|
const CODEX_APP_SERVER_STARTUP_STDERR_MAX_LENGTH = 16_384;
|
|
44
56
|
// Bound on distinct subagent threads whose token usage is tracked per parent
|
|
45
57
|
// turn. Far above any sane spawn fan-out; threads past the cap are ignored.
|
|
@@ -53,64 +65,56 @@ function prepareCodexRpcParams(method, params) {
|
|
|
53
65
|
}
|
|
54
66
|
return stripped;
|
|
55
67
|
}
|
|
56
|
-
//
|
|
57
|
-
//
|
|
58
|
-
//
|
|
68
|
+
// Codex emits contextCompaction item lifecycle notifications and also retains
|
|
69
|
+
// the canonical deprecated thread/compacted notification. Both exact pinned
|
|
70
|
+
// protocol shapes are accepted; no dotted or alternate envelope aliases are.
|
|
59
71
|
function isCodexContextCompactionStarted(message) {
|
|
60
|
-
|
|
61
|
-
if (method !== 'item/started' && method !== 'item.started') {
|
|
72
|
+
if (message.method !== 'item/started') {
|
|
62
73
|
return false;
|
|
63
74
|
}
|
|
64
|
-
return
|
|
75
|
+
return readCodexRecord(readCodexRecord(message.params)?.item)?.type
|
|
76
|
+
=== 'contextCompaction';
|
|
65
77
|
}
|
|
66
78
|
function readCodexContextCompactionItemId(message) {
|
|
67
|
-
return
|
|
79
|
+
return readCodexNonEmptyString(readCodexRecord(readCodexRecord(message.params)?.item)?.id);
|
|
68
80
|
}
|
|
69
81
|
function isCodexContextCompactionStartedForThread(message, threadId) {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
}
|
|
73
|
-
const messageThreadId = extractCodexThreadIdFromMessage(message);
|
|
74
|
-
return messageThreadId === null || messageThreadId === threadId;
|
|
82
|
+
return isCodexContextCompactionStarted(message)
|
|
83
|
+
&& extractCodexThreadIdFromMessage(message) === threadId;
|
|
75
84
|
}
|
|
76
85
|
function isCodexLegacyContextCompactionCompletion(message) {
|
|
77
|
-
|
|
78
|
-
return method === 'thread/compacted' || method === 'thread.compacted';
|
|
86
|
+
return message.method === 'thread/compacted';
|
|
79
87
|
}
|
|
80
88
|
function isCodexContextCompactionCompletion(message) {
|
|
81
89
|
if (isCodexLegacyContextCompactionCompletion(message)) {
|
|
82
90
|
return true;
|
|
83
91
|
}
|
|
84
|
-
|
|
85
|
-
if (method !== 'item/completed' && method !== 'item.completed') {
|
|
92
|
+
if (message.method !== 'item/completed') {
|
|
86
93
|
return false;
|
|
87
94
|
}
|
|
88
|
-
return
|
|
95
|
+
return readCodexRecord(readCodexRecord(message.params)?.item)?.type
|
|
96
|
+
=== 'contextCompaction';
|
|
89
97
|
}
|
|
90
98
|
function isCodexContextCompactionCompletionForThread(message, threadId) {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
}
|
|
94
|
-
const messageThreadId = extractCodexThreadIdFromMessage(message);
|
|
95
|
-
return messageThreadId === null || messageThreadId === threadId;
|
|
99
|
+
return isCodexContextCompactionCompletion(message)
|
|
100
|
+
&& extractCodexThreadIdFromMessage(message) === threadId;
|
|
96
101
|
}
|
|
97
102
|
function isCodexThreadTokenUsageUpdatedMethod(method) {
|
|
98
|
-
return
|
|
99
|
-
method === 'thread/token_usage/updated' ||
|
|
100
|
-
method === 'thread.tokenUsage.updated' ||
|
|
101
|
-
method === 'thread.token.usage.updated' ||
|
|
102
|
-
method === 'thread.token_usage.updated');
|
|
103
|
+
return method === 'thread/tokenUsage/updated';
|
|
103
104
|
}
|
|
104
105
|
function readCodexThreadTokenUsageUpdate(message) {
|
|
105
|
-
|
|
106
|
-
if (!isCodexThreadTokenUsageUpdatedMethod(method)) {
|
|
106
|
+
if (!isCodexThreadTokenUsageUpdatedMethod(readCodexEventMethod(message))) {
|
|
107
107
|
return null;
|
|
108
108
|
}
|
|
109
|
-
const params =
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
109
|
+
const params = readCodexRecord(message.params);
|
|
110
|
+
const threadId = readCodexNonEmptyString(params?.threadId);
|
|
111
|
+
const tokenUsage = readCodexThreadTokenUsage(params?.tokenUsage);
|
|
112
|
+
return threadId && tokenUsage
|
|
113
|
+
? {
|
|
114
|
+
last: tokenUsage.last,
|
|
115
|
+
threadId,
|
|
116
|
+
}
|
|
117
|
+
: null;
|
|
114
118
|
}
|
|
115
119
|
function buildCodexAppServerNotFoundError(codexCommand) {
|
|
116
120
|
return new VaultCliError('ASSISTANT_CODEX_NOT_FOUND', `Codex app-server executable "${codexCommand}" was not found. Install @openai/codex or pass --codexCommand.`);
|
|
@@ -180,51 +184,63 @@ function appendRequiredVaultFileApprovalUrls(message, approvalUrls) {
|
|
|
180
184
|
...approvalUrls,
|
|
181
185
|
].filter((part) => part !== null).join('\n\n');
|
|
182
186
|
}
|
|
187
|
+
function buildRequiredAutomationLocalAtClarificationKey(input) {
|
|
188
|
+
return `${input.targetKey}:${input.resolvedLocalDate}`;
|
|
189
|
+
}
|
|
190
|
+
function buildRequiredAutomationLocalAtClarification(requirement) {
|
|
191
|
+
const reminder = `reminder ${JSON.stringify(requirement.targetLabel)}`;
|
|
192
|
+
return requirement.code === 'local_at_gap'
|
|
193
|
+
? `For ${reminder}, the trusted date is ${requirement.resolvedLocalDate}. What other local time on ${requirement.resolvedLocalDate} should I use?`
|
|
194
|
+
: `For ${reminder}, the trusted date is ${requirement.resolvedLocalDate}. Should I use the earlier or later occurrence on ${requirement.resolvedLocalDate}?`;
|
|
195
|
+
}
|
|
196
|
+
function appendRequiredAutomationLocalAtClarification(message, requirements) {
|
|
197
|
+
if (requirements.length === 0) {
|
|
198
|
+
return message;
|
|
199
|
+
}
|
|
200
|
+
const normalizedMessage = normalizeNullableString(message);
|
|
201
|
+
const missingClarifications = requirements
|
|
202
|
+
.map(buildRequiredAutomationLocalAtClarification)
|
|
203
|
+
.filter((clarification) => !normalizedMessage?.includes(clarification));
|
|
204
|
+
return [normalizedMessage, ...missingClarifications]
|
|
205
|
+
.filter((part) => part !== null)
|
|
206
|
+
.join('\n\n');
|
|
207
|
+
}
|
|
183
208
|
export async function executeCodexAppServerTurn(input) {
|
|
209
|
+
const providerStartCriticalPath = stampAssistantProviderStartCriticalPath(input.providerStartCriticalPath, 'codexAppServerTurnStartedAtMonotonicMs');
|
|
184
210
|
assertCodexAppServerPermissionRequest(input);
|
|
185
211
|
const approvalPolicy = resolveSupportedCodexAppServerApprovalPolicy(input.approvalPolicy);
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
});
|
|
192
|
-
const codexCommand = resolveCodexAppServerCommand(input.codexCommand);
|
|
212
|
+
if (input.processLifetime !== 'one-shot' &&
|
|
213
|
+
warmCodexWorkspaceBoundaryActive) {
|
|
214
|
+
throw buildWarmCodexWorkspaceBoundaryBusyError();
|
|
215
|
+
}
|
|
216
|
+
const processInput = await prepareCodexAppServerProcessInput(input);
|
|
193
217
|
const tempRoot = await mkdtemp(path.join(tmpdir(), 'murph-codex-'));
|
|
194
|
-
const
|
|
195
|
-
images:
|
|
218
|
+
const preparedImages = await materializeCodexImages({
|
|
219
|
+
images: normalizeCodexAppServerImageDetails({
|
|
220
|
+
images: input.images,
|
|
221
|
+
model: input.model,
|
|
222
|
+
modelProvider: input.modelProvider,
|
|
223
|
+
turnKind: 'initial',
|
|
224
|
+
}),
|
|
196
225
|
tempRoot,
|
|
197
226
|
});
|
|
198
227
|
const normalizedInput = {
|
|
199
228
|
...input,
|
|
200
229
|
approvalPolicy,
|
|
201
|
-
configOverrides:
|
|
202
|
-
|
|
203
|
-
env: input.env,
|
|
204
|
-
}),
|
|
230
|
+
configOverrides: processInput.configOverrides,
|
|
231
|
+
...(providerStartCriticalPath ? { providerStartCriticalPath } : {}),
|
|
205
232
|
runtimeWorkspaceRoots: input.runtimeWorkspaceRoots?.map((root) => path.resolve(root)),
|
|
206
233
|
};
|
|
207
|
-
const args = buildCodexAppServerArgs(normalizedInput);
|
|
208
|
-
const launchKey = buildCodexAppServerLaunchKey({
|
|
209
|
-
args,
|
|
210
|
-
codexCommand,
|
|
211
|
-
env: childEnv,
|
|
212
|
-
workingDirectory,
|
|
213
|
-
});
|
|
214
234
|
const preparedInput = {
|
|
215
235
|
...normalizedInput,
|
|
216
|
-
|
|
217
|
-
codexCommand,
|
|
218
|
-
env: childEnv,
|
|
236
|
+
...processInput,
|
|
219
237
|
fetchImpl: input.fetchImpl ?? fetch,
|
|
220
238
|
materializeWorkspaceArtifacts: input.materializeWorkspaceArtifacts ?? null,
|
|
221
|
-
|
|
222
|
-
launchKey,
|
|
239
|
+
preparedImages,
|
|
223
240
|
publicInternetFetch: input.publicInternetFetch ?? null,
|
|
224
241
|
tempRoot,
|
|
225
242
|
voiceMemoRuntime: input.voiceMemoRuntime ?? null,
|
|
226
243
|
askGrokRuntime: input.askGrokRuntime ?? null,
|
|
227
|
-
workingDirectory,
|
|
228
244
|
};
|
|
229
245
|
let oneShotProcess = null;
|
|
230
246
|
try {
|
|
@@ -239,8 +255,20 @@ export async function executeCodexAppServerTurn(input) {
|
|
|
239
255
|
oneShotProcess.reserveTurn();
|
|
240
256
|
return await runCodexAppServerTurnOnProcess(oneShotProcess, preparedInput);
|
|
241
257
|
}
|
|
242
|
-
|
|
243
|
-
|
|
258
|
+
let allowPreinitializeFallback = true;
|
|
259
|
+
while (true) {
|
|
260
|
+
const processInstance = await getOrStartWarmCodexProcess(preparedInput);
|
|
261
|
+
try {
|
|
262
|
+
return await runCodexAppServerTurnOnProcess(processInstance, preparedInput);
|
|
263
|
+
}
|
|
264
|
+
catch (error) {
|
|
265
|
+
if (!allowPreinitializeFallback ||
|
|
266
|
+
!processInstance.didSpeculativeInitializationFail(error)) {
|
|
267
|
+
throw error;
|
|
268
|
+
}
|
|
269
|
+
allowPreinitializeFallback = false;
|
|
270
|
+
}
|
|
271
|
+
}
|
|
244
272
|
}
|
|
245
273
|
finally {
|
|
246
274
|
try {
|
|
@@ -259,14 +287,23 @@ function assertCodexAppServerPermissionRequest(input) {
|
|
|
259
287
|
if (!permissions) {
|
|
260
288
|
return;
|
|
261
289
|
}
|
|
290
|
+
const residentWorkspacePermissionRequest = permissions === MURPH_MEMBER_WORKSPACE_PERMISSION_PROFILE;
|
|
262
291
|
const invalidFields = [
|
|
263
292
|
...(input.sandbox ? ['sandbox'] : []),
|
|
264
|
-
...(normalizeNullableString(input.resumeSessionId)
|
|
265
|
-
|
|
266
|
-
|
|
293
|
+
...(residentWorkspacePermissionRequest || !normalizeNullableString(input.resumeSessionId)
|
|
294
|
+
? []
|
|
295
|
+
: ['resumeSessionId']),
|
|
296
|
+
...(residentWorkspacePermissionRequest || input.ephemeral === true
|
|
297
|
+
? []
|
|
298
|
+
: ['ephemeral']),
|
|
299
|
+
...(residentWorkspacePermissionRequest || input.processLifetime === 'one-shot'
|
|
300
|
+
? []
|
|
301
|
+
: ['processLifetime']),
|
|
267
302
|
];
|
|
268
303
|
if (invalidFields.length > 0) {
|
|
269
|
-
throw new VaultCliError('ASSISTANT_CODEX_APP_SERVER_REQUEST_INVALID',
|
|
304
|
+
throw new VaultCliError('ASSISTANT_CODEX_APP_SERVER_REQUEST_INVALID', residentWorkspacePermissionRequest
|
|
305
|
+
? 'Named Codex permissions cannot be combined with a legacy sandbox.'
|
|
306
|
+
: 'Restricted named Codex permissions require a fresh ephemeral thread in a one-shot process without a legacy sandbox.', {
|
|
270
307
|
invalidFields,
|
|
271
308
|
retryable: false,
|
|
272
309
|
});
|
|
@@ -297,6 +334,38 @@ async function assertCodexAppServerWorkingDirectory(workingDirectory) {
|
|
|
297
334
|
function resolveCodexAppServerCommand(codexCommand) {
|
|
298
335
|
return codexCommand?.trim() || 'codex';
|
|
299
336
|
}
|
|
337
|
+
async function prepareCodexAppServerProcessInput(input) {
|
|
338
|
+
const workingDirectory = path.resolve(input.workingDirectory);
|
|
339
|
+
await assertCodexAppServerWorkingDirectory(workingDirectory);
|
|
340
|
+
const env = await resolveCodexChildEnv({
|
|
341
|
+
codexHome: input.codexHome,
|
|
342
|
+
env: input.env,
|
|
343
|
+
});
|
|
344
|
+
const codexCommand = resolveCodexAppServerCommand(input.codexCommand);
|
|
345
|
+
const configOverrides = withHostedCodexModelCatalogConfigOverride({
|
|
346
|
+
configOverrides: input.configOverrides,
|
|
347
|
+
env: input.env,
|
|
348
|
+
}) ?? [];
|
|
349
|
+
const args = buildCodexAppServerArgs({
|
|
350
|
+
configOverrides,
|
|
351
|
+
oss: input.oss,
|
|
352
|
+
profile: input.profile,
|
|
353
|
+
});
|
|
354
|
+
const launchKey = buildCodexAppServerLaunchKey({
|
|
355
|
+
args,
|
|
356
|
+
codexCommand,
|
|
357
|
+
env,
|
|
358
|
+
workingDirectory,
|
|
359
|
+
});
|
|
360
|
+
return {
|
|
361
|
+
args,
|
|
362
|
+
codexCommand,
|
|
363
|
+
configOverrides,
|
|
364
|
+
env,
|
|
365
|
+
launchKey,
|
|
366
|
+
workingDirectory,
|
|
367
|
+
};
|
|
368
|
+
}
|
|
300
369
|
function buildCodexAppServerLaunchKey(input) {
|
|
301
370
|
return hashCodexRawString(JSON.stringify({
|
|
302
371
|
args: input.args,
|
|
@@ -337,10 +406,14 @@ class CodexAppServerProcess {
|
|
|
337
406
|
boundThreadModel = null;
|
|
338
407
|
boundThreadServiceTier = null;
|
|
339
408
|
cleanupProcessExitListener;
|
|
409
|
+
completedTurn = false;
|
|
340
410
|
lastThreadTokenUsage = null;
|
|
341
411
|
codexCommand;
|
|
342
412
|
ignoredResponseIds = new Set();
|
|
343
413
|
initialized = false;
|
|
414
|
+
initializationFailure = null;
|
|
415
|
+
initializationPromise = null;
|
|
416
|
+
initializationWasSpeculative = false;
|
|
344
417
|
endReason = null;
|
|
345
418
|
nextRequestId = 1;
|
|
346
419
|
normalShutdown = false;
|
|
@@ -358,6 +431,7 @@ class CodexAppServerProcess {
|
|
|
358
431
|
stderrBuffer = '';
|
|
359
432
|
startupStderr = '';
|
|
360
433
|
startupFailure = null;
|
|
434
|
+
spawnReadyPromise = null;
|
|
361
435
|
stdinFailure = null;
|
|
362
436
|
stdoutBuffer = '';
|
|
363
437
|
stopPromise = null;
|
|
@@ -408,6 +482,12 @@ class CodexAppServerProcess {
|
|
|
408
482
|
get initializedForRpc() {
|
|
409
483
|
return this.initialized;
|
|
410
484
|
}
|
|
485
|
+
get wasPreinitialized() {
|
|
486
|
+
return this.initializationWasSpeculative;
|
|
487
|
+
}
|
|
488
|
+
get hasCompletedTurn() {
|
|
489
|
+
return this.completedTurn;
|
|
490
|
+
}
|
|
411
491
|
get processLifetimeMs() {
|
|
412
492
|
return Math.max(0, Date.now() - this.startedAt);
|
|
413
493
|
}
|
|
@@ -426,6 +506,32 @@ class CodexAppServerProcess {
|
|
|
426
506
|
get isStopped() {
|
|
427
507
|
return this.state === 'stopped';
|
|
428
508
|
}
|
|
509
|
+
get isStoppingOrStopped() {
|
|
510
|
+
return this.state === 'stopping' || this.state === 'stopped';
|
|
511
|
+
}
|
|
512
|
+
get hasUnclaimedSpeculativeInitialization() {
|
|
513
|
+
return (this.initializationWasSpeculative &&
|
|
514
|
+
!this.initialized &&
|
|
515
|
+
!this.hasInFlightTurn);
|
|
516
|
+
}
|
|
517
|
+
canClaimForLaunch(launchKey) {
|
|
518
|
+
return (this.launchKey === launchKey &&
|
|
519
|
+
!this.poisoned &&
|
|
520
|
+
this.state === 'idle' &&
|
|
521
|
+
this.child.exitCode === null &&
|
|
522
|
+
this.child.signalCode === null);
|
|
523
|
+
}
|
|
524
|
+
noteSpeculativeInitialization() {
|
|
525
|
+
this.initializationWasSpeculative = true;
|
|
526
|
+
}
|
|
527
|
+
didSpeculativeInitializationFail(error) {
|
|
528
|
+
return (this.initializationWasSpeculative &&
|
|
529
|
+
this.initializationFailure !== null &&
|
|
530
|
+
this.initializationFailure === error);
|
|
531
|
+
}
|
|
532
|
+
noteTurnCompleted() {
|
|
533
|
+
this.completedTurn = true;
|
|
534
|
+
}
|
|
429
535
|
reserveTurn() {
|
|
430
536
|
if (this.state !== 'idle' ||
|
|
431
537
|
this.activeTurn ||
|
|
@@ -469,6 +575,10 @@ class CodexAppServerProcess {
|
|
|
469
575
|
});
|
|
470
576
|
}
|
|
471
577
|
async waitForSpawn() {
|
|
578
|
+
this.spawnReadyPromise ??= this.runWaitForSpawn();
|
|
579
|
+
await this.spawnReadyPromise;
|
|
580
|
+
}
|
|
581
|
+
async runWaitForSpawn() {
|
|
472
582
|
this.throwStartupFailure();
|
|
473
583
|
try {
|
|
474
584
|
await waitForCodexSpawn(this.child);
|
|
@@ -482,9 +592,18 @@ class CodexAppServerProcess {
|
|
|
482
592
|
this.throwStartupFailure();
|
|
483
593
|
}
|
|
484
594
|
async initialize() {
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
595
|
+
this.initializationPromise ??= this.runInitialize().catch((error) => {
|
|
596
|
+
this.initializationFailure = error;
|
|
597
|
+
this.poisoned = true;
|
|
598
|
+
if (error instanceof Error) {
|
|
599
|
+
this.startupFailure ??= error;
|
|
600
|
+
}
|
|
601
|
+
throw error;
|
|
602
|
+
});
|
|
603
|
+
await this.initializationPromise;
|
|
604
|
+
}
|
|
605
|
+
async runInitialize() {
|
|
606
|
+
await this.waitForSpawn();
|
|
488
607
|
await withCodexRpcTimeout(this.sendRequest('initialize', {
|
|
489
608
|
clientInfo: {
|
|
490
609
|
name: CODEX_RPC_CLIENT_NAME,
|
|
@@ -569,7 +688,8 @@ class CodexAppServerProcess {
|
|
|
569
688
|
!this.poisoned &&
|
|
570
689
|
this.child.exitCode === null &&
|
|
571
690
|
this.child.signalCode === null &&
|
|
572
|
-
this.state === 'idle'
|
|
691
|
+
(this.state === 'idle' ||
|
|
692
|
+
(this.state === 'reserved' && this.activeTurn === null))) {
|
|
573
693
|
return;
|
|
574
694
|
}
|
|
575
695
|
throw new VaultCliError('ASSISTANT_CODEX_BACKGROUND_WORK_UNAVAILABLE', 'Codex app-server background work could not be verified before the workspace boundary.', { retryable: true });
|
|
@@ -690,6 +810,10 @@ class CodexAppServerProcess {
|
|
|
690
810
|
this.endReason ??= resolveCodexAppServerEndReason(reason);
|
|
691
811
|
this.normalShutdown = true;
|
|
692
812
|
this.state = 'stopping';
|
|
813
|
+
this.rejectPending(new VaultCliError('ASSISTANT_CODEX_APP_SERVER_STOPPED', 'Codex app-server stopped before its pending RPC completed.', {
|
|
814
|
+
reason,
|
|
815
|
+
retryable: true,
|
|
816
|
+
}));
|
|
693
817
|
let stopped = false;
|
|
694
818
|
try {
|
|
695
819
|
await stopCodexAppServerChild({
|
|
@@ -722,12 +846,9 @@ class CodexAppServerProcess {
|
|
|
722
846
|
await this.stop(reason).catch(() => undefined);
|
|
723
847
|
}
|
|
724
848
|
isReusableFor(launchKey) {
|
|
725
|
-
return (this.launchKey
|
|
849
|
+
return (this.canClaimForLaunch(launchKey) &&
|
|
726
850
|
this.initialized &&
|
|
727
|
-
|
|
728
|
-
this.state === 'idle' &&
|
|
729
|
-
this.child.exitCode === null &&
|
|
730
|
-
this.child.signalCode === null);
|
|
851
|
+
this.initializationFailure === null);
|
|
731
852
|
}
|
|
732
853
|
closeStdin() {
|
|
733
854
|
if (this.stdinFailure) {
|
|
@@ -943,6 +1064,7 @@ class CodexAppServerProcess {
|
|
|
943
1064
|
this.state = 'stopped';
|
|
944
1065
|
this.cleanupProcessExitListener();
|
|
945
1066
|
if (this.normalShutdown) {
|
|
1067
|
+
this.rejectPending(new VaultCliError('ASSISTANT_CODEX_APP_SERVER_STOPPED', 'Codex app-server closed before its pending RPC completed.', { retryable: true }));
|
|
946
1068
|
return;
|
|
947
1069
|
}
|
|
948
1070
|
if (this.activeTurn) {
|
|
@@ -1018,7 +1140,7 @@ function readCodexBackgroundTerminalPresence(value) {
|
|
|
1018
1140
|
}
|
|
1019
1141
|
function readCodexSubagentActivity(message) {
|
|
1020
1142
|
const method = typeof message.method === 'string' ? message.method : null;
|
|
1021
|
-
if (method !== 'item/completed'
|
|
1143
|
+
if (method !== 'item/completed') {
|
|
1022
1144
|
return null;
|
|
1023
1145
|
}
|
|
1024
1146
|
const item = asCodexRecord(asCodexRecord(message.params)?.item);
|
|
@@ -1109,6 +1231,13 @@ function resolveCodexAppServerEndReason(reason) {
|
|
|
1109
1231
|
}
|
|
1110
1232
|
let warmCodexProcess = null;
|
|
1111
1233
|
let warmCodexSlotLock = Promise.resolve();
|
|
1234
|
+
let warmCodexWorkspaceBoundaryActive = false;
|
|
1235
|
+
function buildWarmCodexWorkspaceBoundaryBusyError() {
|
|
1236
|
+
return new VaultCliError('ASSISTANT_CODEX_APP_SERVER_BUSY', 'Codex app-server cannot be claimed while a workspace boundary is active.', {
|
|
1237
|
+
retryable: true,
|
|
1238
|
+
state: 'workspace-boundary',
|
|
1239
|
+
});
|
|
1240
|
+
}
|
|
1112
1241
|
async function withWarmCodexSlotLock(operation) {
|
|
1113
1242
|
const previous = warmCodexSlotLock;
|
|
1114
1243
|
let release;
|
|
@@ -1124,15 +1253,17 @@ async function withWarmCodexSlotLock(operation) {
|
|
|
1124
1253
|
}
|
|
1125
1254
|
}
|
|
1126
1255
|
async function getOrStartWarmCodexProcess(input) {
|
|
1256
|
+
if (warmCodexWorkspaceBoundaryActive) {
|
|
1257
|
+
throw buildWarmCodexWorkspaceBoundaryBusyError();
|
|
1258
|
+
}
|
|
1127
1259
|
const launchKey = input.launchKey;
|
|
1128
1260
|
return await withWarmCodexSlotLock(async () => {
|
|
1129
|
-
if (warmCodexProcess?.isReusableFor(launchKey)) {
|
|
1130
|
-
warmCodexProcess.reserveTurn();
|
|
1131
|
-
return warmCodexProcess;
|
|
1132
|
-
}
|
|
1133
1261
|
const previousProcess = warmCodexProcess;
|
|
1134
|
-
let coldStartReason = 'node-process-first-use';
|
|
1135
1262
|
if (previousProcess) {
|
|
1263
|
+
if (previousProcess.canClaimForLaunch(launchKey)) {
|
|
1264
|
+
previousProcess.reserveTurn();
|
|
1265
|
+
return previousProcess;
|
|
1266
|
+
}
|
|
1136
1267
|
if (previousProcess.hasInFlightTurn) {
|
|
1137
1268
|
throw previousProcess.buildBusyError('Codex app-server process is already serving a turn.');
|
|
1138
1269
|
}
|
|
@@ -1144,15 +1275,121 @@ async function getOrStartWarmCodexProcess(input) {
|
|
|
1144
1275
|
? 'launch-identity-changed'
|
|
1145
1276
|
: 'process-unhealthy';
|
|
1146
1277
|
await previousProcess.stop(stopReason);
|
|
1147
|
-
coldStartReason = previousProcess.nextColdStartReason;
|
|
1148
1278
|
}
|
|
1149
1279
|
const processInstance = new CodexAppServerProcess({
|
|
1150
1280
|
...input,
|
|
1151
|
-
coldStartReason,
|
|
1281
|
+
coldStartReason: previousProcess?.nextColdStartReason ?? 'node-process-first-use',
|
|
1152
1282
|
});
|
|
1153
1283
|
warmCodexProcess = processInstance;
|
|
1154
|
-
|
|
1155
|
-
return
|
|
1284
|
+
processInstance.reserveTurn();
|
|
1285
|
+
return processInstance;
|
|
1286
|
+
});
|
|
1287
|
+
}
|
|
1288
|
+
async function stopExactUnclaimedWarmCodexProcess(processInstance, reason) {
|
|
1289
|
+
await withWarmCodexSlotLock(async () => {
|
|
1290
|
+
if (warmCodexProcess !== processInstance ||
|
|
1291
|
+
!processInstance.hasUnclaimedSpeculativeInitialization) {
|
|
1292
|
+
return;
|
|
1293
|
+
}
|
|
1294
|
+
await processInstance.stop(reason);
|
|
1295
|
+
});
|
|
1296
|
+
}
|
|
1297
|
+
function createCodexAppServerPreinitialization(processInstance) {
|
|
1298
|
+
return {
|
|
1299
|
+
async cancelPending() {
|
|
1300
|
+
try {
|
|
1301
|
+
await stopExactUnclaimedWarmCodexProcess(processInstance, 'invocation-release-during-preinitialize');
|
|
1302
|
+
}
|
|
1303
|
+
catch (error) {
|
|
1304
|
+
// An already-proven exit is sufficient for this optional optimization's
|
|
1305
|
+
// invocation-release boundary. Unproven teardown still fails closed.
|
|
1306
|
+
if (!processInstance.isStopped) {
|
|
1307
|
+
throw error;
|
|
1308
|
+
}
|
|
1309
|
+
}
|
|
1310
|
+
},
|
|
1311
|
+
};
|
|
1312
|
+
}
|
|
1313
|
+
function readCodexPreinitializeAbortReason(signal) {
|
|
1314
|
+
return signal.reason instanceof Error
|
|
1315
|
+
? signal.reason
|
|
1316
|
+
: new DOMException('Codex app-server preinitialization was interrupted.', 'AbortError');
|
|
1317
|
+
}
|
|
1318
|
+
function beginCodexPreinitialize(processInstance, signal) {
|
|
1319
|
+
const readiness = processInstance.initialize();
|
|
1320
|
+
const onAbort = () => {
|
|
1321
|
+
void stopExactUnclaimedWarmCodexProcess(processInstance, 'preinitialize-aborted').catch(() => undefined);
|
|
1322
|
+
};
|
|
1323
|
+
signal?.addEventListener('abort', onAbort, { once: true });
|
|
1324
|
+
if (signal?.aborted) {
|
|
1325
|
+
onAbort();
|
|
1326
|
+
}
|
|
1327
|
+
void readiness.then(() => {
|
|
1328
|
+
signal?.removeEventListener('abort', onAbort);
|
|
1329
|
+
}, () => {
|
|
1330
|
+
signal?.removeEventListener('abort', onAbort);
|
|
1331
|
+
if (processInstance.isStoppingOrStopped) {
|
|
1332
|
+
return;
|
|
1333
|
+
}
|
|
1334
|
+
void stopExactUnclaimedWarmCodexProcess(processInstance, 'preinitialize-failure').catch(() => undefined);
|
|
1335
|
+
});
|
|
1336
|
+
}
|
|
1337
|
+
export async function preinitializeCodexAppServer(input) {
|
|
1338
|
+
const signal = input.signal ?? null;
|
|
1339
|
+
if (signal?.aborted) {
|
|
1340
|
+
throw readCodexPreinitializeAbortReason(signal);
|
|
1341
|
+
}
|
|
1342
|
+
if (warmCodexWorkspaceBoundaryActive) {
|
|
1343
|
+
return null;
|
|
1344
|
+
}
|
|
1345
|
+
const processInput = await prepareCodexAppServerProcessInput(input);
|
|
1346
|
+
if (signal?.aborted) {
|
|
1347
|
+
throw readCodexPreinitializeAbortReason(signal);
|
|
1348
|
+
}
|
|
1349
|
+
if (warmCodexWorkspaceBoundaryActive) {
|
|
1350
|
+
return null;
|
|
1351
|
+
}
|
|
1352
|
+
return await withWarmCodexSlotLock(async () => {
|
|
1353
|
+
if (signal?.aborted) {
|
|
1354
|
+
throw readCodexPreinitializeAbortReason(signal);
|
|
1355
|
+
}
|
|
1356
|
+
const processInstance = warmCodexProcess;
|
|
1357
|
+
if (processInstance) {
|
|
1358
|
+
if (processInstance.canClaimForLaunch(processInput.launchKey)) {
|
|
1359
|
+
if (!processInstance.initializedForRpc) {
|
|
1360
|
+
processInstance.noteSpeculativeInitialization();
|
|
1361
|
+
beginCodexPreinitialize(processInstance, signal);
|
|
1362
|
+
}
|
|
1363
|
+
return createCodexAppServerPreinitialization(processInstance);
|
|
1364
|
+
}
|
|
1365
|
+
if (processInstance.hasInFlightTurn) {
|
|
1366
|
+
return null;
|
|
1367
|
+
}
|
|
1368
|
+
if (processInstance.canClaimForLaunch(processInstance.launchKey)) {
|
|
1369
|
+
return null;
|
|
1370
|
+
}
|
|
1371
|
+
const processExited = processInstance.child.exitCode !== null ||
|
|
1372
|
+
processInstance.child.signalCode !== null;
|
|
1373
|
+
await processInstance.stop(processExited
|
|
1374
|
+
? 'process-exited'
|
|
1375
|
+
: processInstance.launchKey !== processInput.launchKey
|
|
1376
|
+
? 'launch-identity-changed'
|
|
1377
|
+
: 'process-unhealthy');
|
|
1378
|
+
}
|
|
1379
|
+
if (signal?.aborted) {
|
|
1380
|
+
throw readCodexPreinitializeAbortReason(signal);
|
|
1381
|
+
}
|
|
1382
|
+
const preparedProcess = new CodexAppServerProcess({
|
|
1383
|
+
args: processInput.args,
|
|
1384
|
+
codexCommand: processInput.codexCommand,
|
|
1385
|
+
coldStartReason: processInstance?.nextColdStartReason ?? 'node-process-first-use',
|
|
1386
|
+
env: processInput.env,
|
|
1387
|
+
launchKey: processInput.launchKey,
|
|
1388
|
+
});
|
|
1389
|
+
preparedProcess.noteSpeculativeInitialization();
|
|
1390
|
+
warmCodexProcess = preparedProcess;
|
|
1391
|
+
beginCodexPreinitialize(preparedProcess, signal);
|
|
1392
|
+
return createCodexAppServerPreinitialization(preparedProcess);
|
|
1156
1393
|
});
|
|
1157
1394
|
}
|
|
1158
1395
|
export async function stopWarmCodexAppServer(reason = 'external-stop') {
|
|
@@ -1168,13 +1405,43 @@ export async function stopWarmCodexAppServer(reason = 'external-stop') {
|
|
|
1168
1405
|
});
|
|
1169
1406
|
}
|
|
1170
1407
|
export async function waitForWarmCodexBackgroundWork(input = {}) {
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1408
|
+
if (warmCodexWorkspaceBoundaryActive) {
|
|
1409
|
+
throw buildWarmCodexWorkspaceBoundaryBusyError();
|
|
1410
|
+
}
|
|
1411
|
+
warmCodexWorkspaceBoundaryActive = true;
|
|
1412
|
+
try {
|
|
1413
|
+
const processInstance = await withWarmCodexSlotLock(async () => {
|
|
1414
|
+
const processInstance = warmCodexProcess;
|
|
1415
|
+
if (!processInstance || processInstance.isStopped) {
|
|
1416
|
+
return null;
|
|
1417
|
+
}
|
|
1418
|
+
if (processInstance.hasUnclaimedSpeculativeInitialization) {
|
|
1419
|
+
await processInstance.stop('workspace-boundary-during-preinitialize');
|
|
1420
|
+
return null;
|
|
1421
|
+
}
|
|
1422
|
+
if (processInstance.hasInFlightTurn) {
|
|
1423
|
+
throw processInstance.buildBusyError('Codex app-server process is serving a turn and cannot cross a workspace boundary.');
|
|
1424
|
+
}
|
|
1425
|
+
if (!processInstance.isReusableFor(processInstance.launchKey)) {
|
|
1426
|
+
await processInstance.stop('workspace-boundary-process-unhealthy');
|
|
1427
|
+
return null;
|
|
1428
|
+
}
|
|
1429
|
+
processInstance.reserveTurn();
|
|
1430
|
+
return processInstance;
|
|
1431
|
+
});
|
|
1432
|
+
if (!processInstance) {
|
|
1174
1433
|
return;
|
|
1175
1434
|
}
|
|
1176
|
-
|
|
1177
|
-
|
|
1435
|
+
try {
|
|
1436
|
+
await processInstance.waitForBackgroundWork(input);
|
|
1437
|
+
}
|
|
1438
|
+
finally {
|
|
1439
|
+
processInstance.releaseReservation();
|
|
1440
|
+
}
|
|
1441
|
+
}
|
|
1442
|
+
finally {
|
|
1443
|
+
warmCodexWorkspaceBoundaryActive = false;
|
|
1444
|
+
}
|
|
1178
1445
|
}
|
|
1179
1446
|
registerStopWarmCodexAppServer(stopWarmCodexAppServer);
|
|
1180
1447
|
registerWaitForWarmCodexBackgroundWork(waitForWarmCodexBackgroundWork);
|
|
@@ -1185,6 +1452,9 @@ registerWaitForWarmCodexBackgroundWork(waitForWarmCodexBackgroundWork);
|
|
|
1185
1452
|
* process may write CODEX_HOME at a time.
|
|
1186
1453
|
*/
|
|
1187
1454
|
export async function executeCodexManagedAccountOperation(input) {
|
|
1455
|
+
if (warmCodexWorkspaceBoundaryActive) {
|
|
1456
|
+
throw buildWarmCodexWorkspaceBoundaryBusyError();
|
|
1457
|
+
}
|
|
1188
1458
|
const workingDirectory = path.resolve(input.workingDirectory);
|
|
1189
1459
|
await assertCodexAppServerWorkingDirectory(workingDirectory);
|
|
1190
1460
|
const env = await resolveCodexChildEnv({
|
|
@@ -1405,63 +1675,6 @@ function estimateCodexWarmThreadCompactionUsage(threadContextTokensBefore) {
|
|
|
1405
1675
|
totalTokens: threadContextTokensBefore,
|
|
1406
1676
|
};
|
|
1407
1677
|
}
|
|
1408
|
-
function readCodexCompactionCompletionProviderUsage(message, threadId) {
|
|
1409
|
-
if (!isCodexContextCompactionCompletionForThread(message, threadId)) {
|
|
1410
|
-
return null;
|
|
1411
|
-
}
|
|
1412
|
-
const params = asCodexRecord(message.params);
|
|
1413
|
-
const item = asCodexRecord(params?.item);
|
|
1414
|
-
const candidates = [
|
|
1415
|
-
...readCodexProviderUsageCandidates(params),
|
|
1416
|
-
...readCodexProviderUsageCandidates(item),
|
|
1417
|
-
];
|
|
1418
|
-
for (const candidate of candidates) {
|
|
1419
|
-
const usage = readCodexCompactionProviderUsage(candidate);
|
|
1420
|
-
if (usage) {
|
|
1421
|
-
return usage;
|
|
1422
|
-
}
|
|
1423
|
-
}
|
|
1424
|
-
return null;
|
|
1425
|
-
}
|
|
1426
|
-
function readCodexProviderUsageCandidates(value) {
|
|
1427
|
-
if (!value) {
|
|
1428
|
-
return [];
|
|
1429
|
-
}
|
|
1430
|
-
const providerUsage = asCodexRecord(value.providerUsage)
|
|
1431
|
-
?? asCodexRecord(value.provider_usage);
|
|
1432
|
-
return [providerUsage, asCodexRecord(providerUsage?.last)];
|
|
1433
|
-
}
|
|
1434
|
-
function readCodexCompactionProviderUsage(value) {
|
|
1435
|
-
if (!value) {
|
|
1436
|
-
return null;
|
|
1437
|
-
}
|
|
1438
|
-
const inputTokens = readCodexUsageNumber(value, 'inputTokens', 'input_tokens');
|
|
1439
|
-
const outputTokens = readCodexUsageNumber(value, 'outputTokens', 'output_tokens');
|
|
1440
|
-
const totalTokens = readCodexUsageNumber(value, 'totalTokens', 'total_tokens');
|
|
1441
|
-
if (inputTokens === null || outputTokens === null || totalTokens === null) {
|
|
1442
|
-
return null;
|
|
1443
|
-
}
|
|
1444
|
-
if (inputTokens <= 0 || outputTokens < 0 || totalTokens < inputTokens + outputTokens) {
|
|
1445
|
-
return null;
|
|
1446
|
-
}
|
|
1447
|
-
const cachedInputTokens = readCodexUsageNumber(value, 'cachedInputTokens', 'cached_input_tokens');
|
|
1448
|
-
if (cachedInputTokens !== null && cachedInputTokens > inputTokens) {
|
|
1449
|
-
return null;
|
|
1450
|
-
}
|
|
1451
|
-
return {
|
|
1452
|
-
cachedInputTokens,
|
|
1453
|
-
inputTokens,
|
|
1454
|
-
outputTokens,
|
|
1455
|
-
source: 'provider',
|
|
1456
|
-
totalTokens,
|
|
1457
|
-
};
|
|
1458
|
-
}
|
|
1459
|
-
function readCodexUsageNumber(value, camelKey, snakeKey) {
|
|
1460
|
-
const raw = value[camelKey] ?? value[snakeKey];
|
|
1461
|
-
return typeof raw === 'number' && Number.isSafeInteger(raw) && raw >= 0
|
|
1462
|
-
? raw
|
|
1463
|
-
: null;
|
|
1464
|
-
}
|
|
1465
1678
|
// Non-turn compaction of the warm Codex thread, for idle-time maintenance.
|
|
1466
1679
|
// Modeled on the other warm-slot lifecycle exports above. Failure handling is
|
|
1467
1680
|
// deliberately blunt: any non-success poisons (kills) the warm process. A
|
|
@@ -1509,7 +1722,11 @@ export async function compactWarmCodexThread(input) {
|
|
|
1509
1722
|
};
|
|
1510
1723
|
}
|
|
1511
1724
|
processInstance.reserveTurn();
|
|
1512
|
-
return {
|
|
1725
|
+
return {
|
|
1726
|
+
kind: 'reserved',
|
|
1727
|
+
processInstance,
|
|
1728
|
+
vitals,
|
|
1729
|
+
};
|
|
1513
1730
|
});
|
|
1514
1731
|
if (reservation.kind !== 'reserved') {
|
|
1515
1732
|
return reservation;
|
|
@@ -1520,7 +1737,6 @@ export async function compactWarmCodexThread(input) {
|
|
|
1520
1737
|
let compactRequestAccepted = false;
|
|
1521
1738
|
let compactStartedItemId = null;
|
|
1522
1739
|
let compactCompletionBuffered = false;
|
|
1523
|
-
let providerUsage = null;
|
|
1524
1740
|
let compactionSettleReason = null;
|
|
1525
1741
|
let resolveCompaction;
|
|
1526
1742
|
const compactionSettled = new Promise((resolve) => {
|
|
@@ -1591,8 +1807,6 @@ export async function compactWarmCodexThread(input) {
|
|
|
1591
1807
|
if (!compactRequestAccepted) {
|
|
1592
1808
|
return;
|
|
1593
1809
|
}
|
|
1594
|
-
providerUsage = readCodexCompactionCompletionProviderUsage(message, vitals.threadId)
|
|
1595
|
-
?? providerUsage;
|
|
1596
1810
|
settleCompaction('compacted');
|
|
1597
1811
|
return;
|
|
1598
1812
|
}
|
|
@@ -1605,8 +1819,6 @@ export async function compactWarmCodexThread(input) {
|
|
|
1605
1819
|
if (compactStartedItemId === null || itemId !== compactStartedItemId) {
|
|
1606
1820
|
return;
|
|
1607
1821
|
}
|
|
1608
|
-
providerUsage = readCodexCompactionCompletionProviderUsage(message, vitals.threadId)
|
|
1609
|
-
?? providerUsage;
|
|
1610
1822
|
if (compactRequestAccepted) {
|
|
1611
1823
|
settleCompaction('compacted');
|
|
1612
1824
|
}
|
|
@@ -1658,8 +1870,7 @@ export async function compactWarmCodexThread(input) {
|
|
|
1658
1870
|
threadContextTokensBefore: vitals.lastInputTokens,
|
|
1659
1871
|
threadId: vitals.threadId,
|
|
1660
1872
|
serviceTier: vitals.serviceTier,
|
|
1661
|
-
usage:
|
|
1662
|
-
?? estimateCodexWarmThreadCompactionUsage(vitals.lastInputTokens),
|
|
1873
|
+
usage: estimateCodexWarmThreadCompactionUsage(vitals.lastInputTokens),
|
|
1663
1874
|
};
|
|
1664
1875
|
}
|
|
1665
1876
|
await processInstance.poison('idle-compaction-failed');
|
|
@@ -1694,19 +1905,16 @@ function hashCodexRawString(value) {
|
|
|
1694
1905
|
.digest('hex');
|
|
1695
1906
|
}
|
|
1696
1907
|
function readCodexEventMethod(message) {
|
|
1697
|
-
return typeof message.method === 'string'
|
|
1698
|
-
? message.method
|
|
1699
|
-
: typeof message.type === 'string'
|
|
1700
|
-
? message.type
|
|
1701
|
-
: typeof message.event === 'string'
|
|
1702
|
-
? message.event
|
|
1703
|
-
: null;
|
|
1908
|
+
return typeof message.method === 'string' ? message.method : null;
|
|
1704
1909
|
}
|
|
1705
1910
|
function isCodexTurnStartedMethod(method) {
|
|
1706
|
-
return method === 'turn/started'
|
|
1911
|
+
return method === 'turn/started';
|
|
1912
|
+
}
|
|
1913
|
+
function createCodexSubagentTurnUsageKey(input) {
|
|
1914
|
+
return `${input.threadId}\u0000${input.turnId}`;
|
|
1707
1915
|
}
|
|
1708
1916
|
function isCodexTurnCompletedMethod(method) {
|
|
1709
|
-
return method === 'turn/completed'
|
|
1917
|
+
return method === 'turn/completed';
|
|
1710
1918
|
}
|
|
1711
1919
|
function buildCodexTransportDiagnosticsTraceEvent(input) {
|
|
1712
1920
|
const source = readCodexTransportDiagnosticSource(input.message, input.method);
|
|
@@ -1839,6 +2047,7 @@ function readCodexDynamicToolKey(message) {
|
|
|
1839
2047
|
return namespace && tool ? `${namespace}.${tool}` : null;
|
|
1840
2048
|
}
|
|
1841
2049
|
async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
2050
|
+
const providerStartCriticalPath = stampAssistantProviderStartCriticalPath(input.providerStartCriticalPath, 'codexAppServerProcessTurnStartedAtMonotonicMs');
|
|
1842
2051
|
const hostedCanonicalWritePort = readHostedCanonicalWritePort();
|
|
1843
2052
|
let stdout = '';
|
|
1844
2053
|
let stderr = '';
|
|
@@ -1851,7 +2060,7 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
1851
2060
|
const offeredDynamicToolKeys = new Set(input.dynamicTools.map((tool) => `${tool.namespace}.${tool.name}`));
|
|
1852
2061
|
let codexThreadId = null;
|
|
1853
2062
|
let turnId = null;
|
|
1854
|
-
const isReusedWarmProcess = codexProcess.
|
|
2063
|
+
const isReusedWarmProcess = codexProcess.hasCompletedTurn;
|
|
1855
2064
|
// Completed final-phase agent messages that were followed by a steered
|
|
1856
2065
|
// user-message item and then superseded by a newer response segment in the
|
|
1857
2066
|
// same turn. A closed segment is held as a candidate until newer text or
|
|
@@ -1865,6 +2074,8 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
1865
2074
|
let lastEventError = null;
|
|
1866
2075
|
let lastEventErrorInfo = null;
|
|
1867
2076
|
let responseMedia = [];
|
|
2077
|
+
let responseCard = null;
|
|
2078
|
+
let responseCardTextFallback = null;
|
|
1868
2079
|
const assistantStyleSettingsOverlay = {
|
|
1869
2080
|
settings: {},
|
|
1870
2081
|
};
|
|
@@ -1879,7 +2090,25 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
1879
2090
|
// Trusted turn-scoped murph.ask_grok provider-call ceiling: one counter per
|
|
1880
2091
|
// assistant turn, owned here and threaded into the dynamic-tool executor.
|
|
1881
2092
|
const askGrokTurnState = createAskGrokTurnState();
|
|
1882
|
-
const
|
|
2093
|
+
const groupSharedReadTurnState = {
|
|
2094
|
+
currentSenderDecisionByMessageRef: new Map(),
|
|
2095
|
+
invalid: false,
|
|
2096
|
+
readProjectionScopeKeyBatches: [],
|
|
2097
|
+
roster: null,
|
|
2098
|
+
};
|
|
2099
|
+
const automationRelativeDateReferenceWindows = [
|
|
2100
|
+
input.automationRelativeDateReferenceWindow
|
|
2101
|
+
? { ...input.automationRelativeDateReferenceWindow }
|
|
2102
|
+
: null,
|
|
2103
|
+
];
|
|
2104
|
+
const generateSongTurnState = input.generateSongPolicy
|
|
2105
|
+
? {
|
|
2106
|
+
attemptCount: 0,
|
|
2107
|
+
policy: input.generateSongPolicy,
|
|
2108
|
+
}
|
|
2109
|
+
: null;
|
|
2110
|
+
const subagentTokenUsageByTurn = new Map();
|
|
2111
|
+
const trackedSubagentUsageThreadIds = new Set();
|
|
1883
2112
|
// Thread ids named by this turn's collab tool calls (spawn/sendInput/...),
|
|
1884
2113
|
// collected live so evidenced subagent threads win buffer slots over
|
|
1885
2114
|
// stale/unattributed foreign threads when the cap is reached.
|
|
@@ -1889,8 +2118,10 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
1889
2118
|
const providerActionItemIds = new Set();
|
|
1890
2119
|
const jsonEvents = [];
|
|
1891
2120
|
const runtimeIssueInputs = [];
|
|
2121
|
+
const actionRuntimeIssueTracker = createCodexActionRuntimeIssueTracker();
|
|
1892
2122
|
let computerToolsLockedAfterUserPause = false;
|
|
1893
2123
|
const requiredVaultFileApprovalUrls = [];
|
|
2124
|
+
const requiredAutomationLocalAtClarifications = new Map();
|
|
1894
2125
|
const actionDiagnostics = input.onTraceEvent
|
|
1895
2126
|
? createCodexActionDiagnosticsReducer()
|
|
1896
2127
|
: null;
|
|
@@ -1907,7 +2138,9 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
1907
2138
|
let codexTimingTurnStartAckElapsedMs = null;
|
|
1908
2139
|
let codexTimingTurnStartedNotificationElapsedMs = null;
|
|
1909
2140
|
let codexTimingTurnCompletedNotificationElapsedMs = null;
|
|
2141
|
+
let currentTurnStartedNotificationObserved = false;
|
|
1910
2142
|
let liveInterruptRequested = false;
|
|
2143
|
+
let terminalNoReplyInterruptRequested = false;
|
|
1911
2144
|
let completeTurn = null;
|
|
1912
2145
|
let failTurn = null;
|
|
1913
2146
|
let liveTurnOpen = false;
|
|
@@ -1916,6 +2149,7 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
1916
2149
|
let contextCompactionProgressNotified = false;
|
|
1917
2150
|
let contextCompactionProgressPending = false;
|
|
1918
2151
|
let releaseLiveTurn = () => { };
|
|
2152
|
+
const pendingDynamicToolRequests = new Set();
|
|
1919
2153
|
const pendingProgressDeliveries = new Set();
|
|
1920
2154
|
let dynamicToolExecutionChain = Promise.resolve();
|
|
1921
2155
|
const dynamicToolAbortController = new AbortController();
|
|
@@ -1970,13 +2204,15 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
1970
2204
|
parentModel: normalizeNullableString(input.model) ?? null,
|
|
1971
2205
|
parentRawEvents: jsonEvents,
|
|
1972
2206
|
serviceTier: input.serviceTier ?? null,
|
|
1973
|
-
|
|
2207
|
+
subagentTokenUsageByTurn,
|
|
1974
2208
|
});
|
|
1975
2209
|
const hasNoReplyFinalActionPatch = () => finalActionPatches.some((entry) => entry.patch.kind === 'none');
|
|
1976
2210
|
const listNoReplyFinalActionPatchOrdinals = () => [...new Set(finalActionPatches
|
|
1977
2211
|
.filter((entry) => entry.patch.kind === 'none')
|
|
1978
2212
|
.map((entry) => entry.deliveryContextOrdinal))].sort((left, right) => left - right);
|
|
1979
|
-
const hasRequiredUserVisibleOutput = () => computerToolsLockedAfterUserPause ||
|
|
2213
|
+
const hasRequiredUserVisibleOutput = () => computerToolsLockedAfterUserPause ||
|
|
2214
|
+
requiredAutomationLocalAtClarifications.size > 0 ||
|
|
2215
|
+
requiredVaultFileApprovalUrls.length > 0;
|
|
1980
2216
|
const settleNoReplyFinalActions = async () => {
|
|
1981
2217
|
if (hasRequiredUserVisibleOutput() || noReplySettlementStarted) {
|
|
1982
2218
|
return;
|
|
@@ -2083,7 +2319,7 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
2083
2319
|
rawEvent: {
|
|
2084
2320
|
schema: CODEX_APP_SERVER_TIMING_TRACE_SCHEMA,
|
|
2085
2321
|
type: CODEX_APP_SERVER_TIMING_TRACE_TYPE,
|
|
2086
|
-
...(stage === 'initialized'
|
|
2322
|
+
...(stage === 'initialized' || stage === 'preinitialized'
|
|
2087
2323
|
? {
|
|
2088
2324
|
codexTimingColdStartReason: codexProcess.coldStartReason,
|
|
2089
2325
|
}
|
|
@@ -2269,22 +2505,48 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
2269
2505
|
if (!trailingSteerCandidate) {
|
|
2270
2506
|
return;
|
|
2271
2507
|
}
|
|
2272
|
-
|
|
2508
|
+
const response = trailingSteerCandidate.card
|
|
2509
|
+
? renderAssistantResponseCardText(trailingSteerCandidate.card)
|
|
2510
|
+
: trailingSteerCandidate.cardTextFallback
|
|
2511
|
+
? renderAssistantWorkoutResponseCardText(trailingSteerCandidate.cardTextFallback)
|
|
2512
|
+
: trailingSteerCandidate.response;
|
|
2513
|
+
const transcriptResponse = trailingSteerCandidate.card
|
|
2514
|
+
? renderAssistantResponseCardTranscriptText(trailingSteerCandidate.card)
|
|
2515
|
+
: trailingSteerCandidate.cardTextFallback
|
|
2516
|
+
? renderAssistantWorkoutResponseCardTranscriptText(trailingSteerCandidate.cardTextFallback)
|
|
2517
|
+
: response;
|
|
2518
|
+
precedingAgentMessageSegments.push({
|
|
2519
|
+
deliveryContextOrdinal: trailingSteerCandidate.deliveryContextOrdinal,
|
|
2520
|
+
media: [...trailingSteerCandidate.media],
|
|
2521
|
+
response,
|
|
2522
|
+
...(transcriptResponse === response ? {} : { transcriptResponse }),
|
|
2523
|
+
...(trailingSteerCandidate.targetInputId
|
|
2524
|
+
? { targetInputId: trailingSteerCandidate.targetInputId }
|
|
2525
|
+
: {}),
|
|
2526
|
+
});
|
|
2273
2527
|
trailingSteerCandidate = null;
|
|
2274
2528
|
};
|
|
2275
|
-
const notifyProviderRequestStarted = () => {
|
|
2529
|
+
const notifyProviderRequestStarted = (providedStartedAtMonotonicMs) => {
|
|
2276
2530
|
if (providerRequestStartedNotified) {
|
|
2277
2531
|
return;
|
|
2278
2532
|
}
|
|
2279
2533
|
providerRequestStartedNotified = true;
|
|
2534
|
+
const providerStartedAtMonotonicMs = providedStartedAtMonotonicMs
|
|
2535
|
+
?? readAssistantProviderStartMonotonicTickMs();
|
|
2280
2536
|
const startedAtMs = Date.now();
|
|
2281
2537
|
codexProviderRequestStartedAtMs = startedAtMs;
|
|
2538
|
+
const completedProviderStartCriticalPath = input.providerRequestOrdinal === 0
|
|
2539
|
+
? completeAssistantProviderStartCriticalPath(providerStartCriticalPath, providerStartedAtMonotonicMs)
|
|
2540
|
+
: null;
|
|
2282
2541
|
notifyCodexAppServerProviderRequestStartedBestEffort({
|
|
2283
2542
|
hook: input.onProviderRequestStarted ?? null,
|
|
2284
2543
|
startedAt: new Date(startedAtMs).toISOString(),
|
|
2285
2544
|
timing: {
|
|
2286
2545
|
...codexAppServerProviderStartTiming,
|
|
2287
2546
|
codexAppServerPreProviderMs: Math.max(0, startedAtMs - codexAppServerTurnStartedAt),
|
|
2547
|
+
...(completedProviderStartCriticalPath
|
|
2548
|
+
? { providerStartCriticalPath: completedProviderStartCriticalPath }
|
|
2549
|
+
: {}),
|
|
2288
2550
|
},
|
|
2289
2551
|
});
|
|
2290
2552
|
};
|
|
@@ -2312,6 +2574,7 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
2312
2574
|
try {
|
|
2313
2575
|
contextCompactionProgressPending = true;
|
|
2314
2576
|
progressPromise = progressDelivery.send(text, {
|
|
2577
|
+
deliveryContextOrdinal,
|
|
2315
2578
|
required: true,
|
|
2316
2579
|
source: 'system',
|
|
2317
2580
|
});
|
|
@@ -2346,6 +2609,21 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
2346
2609
|
});
|
|
2347
2610
|
pendingProgressDeliveries.add(tracked);
|
|
2348
2611
|
};
|
|
2612
|
+
const trackDynamicToolRequest = (promise) => {
|
|
2613
|
+
const tracked = promise
|
|
2614
|
+
.catch((error) => {
|
|
2615
|
+
rejectOnce(error);
|
|
2616
|
+
})
|
|
2617
|
+
.finally(() => {
|
|
2618
|
+
pendingDynamicToolRequests.delete(tracked);
|
|
2619
|
+
});
|
|
2620
|
+
pendingDynamicToolRequests.add(tracked);
|
|
2621
|
+
};
|
|
2622
|
+
const drainPendingDynamicToolRequests = async () => {
|
|
2623
|
+
while (pendingDynamicToolRequests.size > 0) {
|
|
2624
|
+
await Promise.all([...pendingDynamicToolRequests]);
|
|
2625
|
+
}
|
|
2626
|
+
};
|
|
2349
2627
|
const drainPendingProgressDeliveries = async () => {
|
|
2350
2628
|
while (pendingProgressDeliveries.size > 0) {
|
|
2351
2629
|
await waitForCodexProgressDrain([
|
|
@@ -2376,9 +2654,60 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
2376
2654
|
if (hasAcceptedNoReplyPatchForDeliveryContext(deliveryContextOrdinal)) {
|
|
2377
2655
|
throw new VaultCliError('ASSISTANT_RESPONSE_MEDIA_AFTER_NO_REPLY', 'Response media cannot be attached after finish_without_reply.');
|
|
2378
2656
|
}
|
|
2379
|
-
|
|
2657
|
+
const nextMedia = patch.op === 'replace'
|
|
2380
2658
|
? patch.media
|
|
2381
2659
|
: normalizeAssistantResponseMediaList([...responseMedia, ...patch.media]);
|
|
2660
|
+
if (nextMedia.length > ASSISTANT_AUTHORED_RESPONSE_MEDIA_MAX_ITEMS) {
|
|
2661
|
+
throw new VaultCliError('ASSISTANT_RESPONSE_MEDIA_LIMIT_EXCEEDED', `Assistant responses may attach at most ${ASSISTANT_AUTHORED_RESPONSE_MEDIA_MAX_ITEMS} media items.`);
|
|
2662
|
+
}
|
|
2663
|
+
if (responseCard !== null && nextMedia.length > 0) {
|
|
2664
|
+
throw new VaultCliError('ASSISTANT_RESPONSE_CARD_MEDIA_CONFLICT', 'Response media cannot be combined with a response card.');
|
|
2665
|
+
}
|
|
2666
|
+
if (responseCardTextFallback !== null && nextMedia.length > 0) {
|
|
2667
|
+
throw new VaultCliError('ASSISTANT_RESPONSE_CARD_MEDIA_CONFLICT', 'Response media cannot be combined with response card text recovery.');
|
|
2668
|
+
}
|
|
2669
|
+
responseMedia = nextMedia;
|
|
2670
|
+
};
|
|
2671
|
+
const applyResponseCardPatch = (card, deliveryContextOrdinal) => {
|
|
2672
|
+
if (deliveryContextOrdinal !== 0 ||
|
|
2673
|
+
currentDeliveryContextOrdinal() !== deliveryContextOrdinal) {
|
|
2674
|
+
throw new VaultCliError('ASSISTANT_RESPONSE_CARD_CONTEXT_ADVANCED', 'A response card cannot attach after accepted input advances the response context.');
|
|
2675
|
+
}
|
|
2676
|
+
if (hasAcceptedNoReplyPatchForDeliveryContext(deliveryContextOrdinal)) {
|
|
2677
|
+
throw new VaultCliError('ASSISTANT_RESPONSE_CARD_AFTER_NO_REPLY', 'A response card cannot be attached after finish_without_reply.');
|
|
2678
|
+
}
|
|
2679
|
+
if (responseCard !== null) {
|
|
2680
|
+
throw new VaultCliError('ASSISTANT_RESPONSE_CARD_LIMIT_REACHED', 'Only one response card may be attached to a final response.');
|
|
2681
|
+
}
|
|
2682
|
+
if (responseCardTextFallback !== null) {
|
|
2683
|
+
throw new VaultCliError('ASSISTANT_RESPONSE_CARD_LIMIT_REACHED', 'Only one response card outcome may be attached to a final response.');
|
|
2684
|
+
}
|
|
2685
|
+
if (responseMedia.length > 0) {
|
|
2686
|
+
throw new VaultCliError('ASSISTANT_RESPONSE_CARD_MEDIA_CONFLICT', 'A response card cannot be combined with response media.');
|
|
2687
|
+
}
|
|
2688
|
+
if (requiredVaultFileApprovalUrls.length > 0) {
|
|
2689
|
+
throw new VaultCliError('ASSISTANT_RESPONSE_CARD_VAULT_FILE_CONFLICT', 'A response card cannot replace a required vault-file approval link.');
|
|
2690
|
+
}
|
|
2691
|
+
responseCard = card;
|
|
2692
|
+
};
|
|
2693
|
+
const applyResponseCardTextFallbackPatch = (card, deliveryContextOrdinal) => {
|
|
2694
|
+
if (deliveryContextOrdinal !== 0 ||
|
|
2695
|
+
currentDeliveryContextOrdinal() !== deliveryContextOrdinal) {
|
|
2696
|
+
throw new VaultCliError('ASSISTANT_RESPONSE_CARD_CONTEXT_ADVANCED', 'Response card text recovery cannot attach after accepted input advances the response context.');
|
|
2697
|
+
}
|
|
2698
|
+
if (hasAcceptedNoReplyPatchForDeliveryContext(deliveryContextOrdinal)) {
|
|
2699
|
+
throw new VaultCliError('ASSISTANT_RESPONSE_CARD_AFTER_NO_REPLY', 'Response card text recovery cannot attach after finish_without_reply.');
|
|
2700
|
+
}
|
|
2701
|
+
if (responseCard !== null || responseCardTextFallback !== null) {
|
|
2702
|
+
throw new VaultCliError('ASSISTANT_RESPONSE_CARD_LIMIT_REACHED', 'Only one response card outcome may be attached to a final response.');
|
|
2703
|
+
}
|
|
2704
|
+
if (responseMedia.length > 0) {
|
|
2705
|
+
throw new VaultCliError('ASSISTANT_RESPONSE_CARD_MEDIA_CONFLICT', 'Response card text recovery cannot be combined with response media.');
|
|
2706
|
+
}
|
|
2707
|
+
if (requiredVaultFileApprovalUrls.length > 0) {
|
|
2708
|
+
throw new VaultCliError('ASSISTANT_RESPONSE_CARD_VAULT_FILE_CONFLICT', 'Response card text recovery cannot replace a required vault-file approval link.');
|
|
2709
|
+
}
|
|
2710
|
+
responseCardTextFallback = card;
|
|
2382
2711
|
};
|
|
2383
2712
|
const canApplyNoReplyPatch = (deliveryContextOrdinal) => {
|
|
2384
2713
|
const trailingSteerCandidateOrdinal = trailingSteerCandidate?.deliveryContextOrdinal;
|
|
@@ -2393,6 +2722,12 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
2393
2722
|
if (responseMedia.length > 0) {
|
|
2394
2723
|
return false;
|
|
2395
2724
|
}
|
|
2725
|
+
if (responseCard !== null) {
|
|
2726
|
+
return false;
|
|
2727
|
+
}
|
|
2728
|
+
if (responseCardTextFallback !== null) {
|
|
2729
|
+
return false;
|
|
2730
|
+
}
|
|
2396
2731
|
if (precedingAgentMessageSegments.some((segment) => segment.deliveryContextOrdinal < deliveryContextOrdinal)) {
|
|
2397
2732
|
return false;
|
|
2398
2733
|
}
|
|
@@ -2451,6 +2786,17 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
2451
2786
|
reservedNoReplyDeliveryContextOrdinals.delete(deliveryContextOrdinal);
|
|
2452
2787
|
return true;
|
|
2453
2788
|
};
|
|
2789
|
+
const applyTerminalExternalEffectNoReplyPatch = (patch, deliveryContextOrdinal) => {
|
|
2790
|
+
// A host-authorized external effect has crossed its delivery boundary.
|
|
2791
|
+
// Its terminal disposition is not a model-requested finish_without_reply
|
|
2792
|
+
// and must not depend on trace callback visibility.
|
|
2793
|
+
finalActionPatches = [
|
|
2794
|
+
...finalActionPatches.filter((action) => action.deliveryContextOrdinal !== deliveryContextOrdinal),
|
|
2795
|
+
{ deliveryContextOrdinal, patch },
|
|
2796
|
+
];
|
|
2797
|
+
replyTargetPatches = replyTargetPatches.filter((entry) => entry.deliveryContextOrdinal !== deliveryContextOrdinal);
|
|
2798
|
+
reservedNoReplyDeliveryContextOrdinals.delete(deliveryContextOrdinal);
|
|
2799
|
+
};
|
|
2454
2800
|
const resolveFinalActionPatch = (deliveryContextOrdinal) => finalActionPatches.find((action) => action.deliveryContextOrdinal === deliveryContextOrdinal)?.patch ?? null;
|
|
2455
2801
|
const resolveReplyTargetPatch = (deliveryContextOrdinal) => replyTargetPatches.find((entry) => entry.deliveryContextOrdinal === deliveryContextOrdinal)?.patch ?? null;
|
|
2456
2802
|
const shouldSuppressDeliveryContext = (deliveryContextOrdinal) => {
|
|
@@ -2463,7 +2809,7 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
2463
2809
|
const acceptJsonEvent = (message) => {
|
|
2464
2810
|
jsonEvents.push(message);
|
|
2465
2811
|
};
|
|
2466
|
-
const handleAcceptedServerRequest = (message, requestId) => {
|
|
2812
|
+
const handleAcceptedServerRequest = async (message, requestId) => {
|
|
2467
2813
|
acceptJsonEvent(message);
|
|
2468
2814
|
if (turnTerminal) {
|
|
2469
2815
|
void tryWriteRpcMessage({
|
|
@@ -2480,7 +2826,40 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
2480
2826
|
});
|
|
2481
2827
|
return;
|
|
2482
2828
|
}
|
|
2483
|
-
|
|
2829
|
+
if (message.method !== 'item/tool/call') {
|
|
2830
|
+
denyUnsupportedCodexServerRequest({
|
|
2831
|
+
message,
|
|
2832
|
+
requestId,
|
|
2833
|
+
writeRpcMessage: (payload) => {
|
|
2834
|
+
void tryWriteRpcMessage(payload);
|
|
2835
|
+
},
|
|
2836
|
+
});
|
|
2837
|
+
return;
|
|
2838
|
+
}
|
|
2839
|
+
const dynamicToolRequestDeliveryContextOrdinal = currentDeliveryContextOrdinal();
|
|
2840
|
+
let dynamicToolRuntime;
|
|
2841
|
+
try {
|
|
2842
|
+
dynamicToolRuntime = await loadMurphDynamicToolRuntime();
|
|
2843
|
+
}
|
|
2844
|
+
catch {
|
|
2845
|
+
void tryWriteRpcMessage({
|
|
2846
|
+
id: requestId,
|
|
2847
|
+
error: {
|
|
2848
|
+
code: -32000,
|
|
2849
|
+
message: 'Dynamic tool runtime is unavailable.',
|
|
2850
|
+
},
|
|
2851
|
+
});
|
|
2852
|
+
return;
|
|
2853
|
+
}
|
|
2854
|
+
const { claimCurrentSenderTurnDecision, executeMurphDynamicToolRequest, isComputerDynamicToolRequest, readMurphDynamicToolRequest, } = dynamicToolRuntime;
|
|
2855
|
+
const dynamicToolRequest = readMurphDynamicToolRequest(message, {
|
|
2856
|
+
automationRelativeDateReferenceWindow: automationRelativeDateReferenceWindows[dynamicToolRequestDeliveryContextOrdinal] ?? null,
|
|
2857
|
+
responseCardAudience: input.groupConversation === true
|
|
2858
|
+
? 'group'
|
|
2859
|
+
: input.groupConversation === false
|
|
2860
|
+
? 'private'
|
|
2861
|
+
: null,
|
|
2862
|
+
});
|
|
2484
2863
|
if (!dynamicToolRequest) {
|
|
2485
2864
|
denyUnsupportedCodexServerRequest({
|
|
2486
2865
|
message,
|
|
@@ -2543,6 +2922,26 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
2543
2922
|
reason: 'invalid_arguments',
|
|
2544
2923
|
}));
|
|
2545
2924
|
}
|
|
2925
|
+
const currentSenderDecisionClaim = claimCurrentSenderTurnDecision({
|
|
2926
|
+
request: dynamicToolRequest,
|
|
2927
|
+
turnState: groupSharedReadTurnState,
|
|
2928
|
+
});
|
|
2929
|
+
if (currentSenderDecisionClaim === 'conflict'
|
|
2930
|
+
|| currentSenderDecisionClaim === 'unavailable') {
|
|
2931
|
+
void tryWriteRpcMessage({
|
|
2932
|
+
id: requestId,
|
|
2933
|
+
result: {
|
|
2934
|
+
success: false,
|
|
2935
|
+
contentItems: [{
|
|
2936
|
+
type: 'inputText',
|
|
2937
|
+
text: currentSenderDecisionClaim === 'conflict'
|
|
2938
|
+
? 'current-sender request conflicts with an earlier decision for this Message'
|
|
2939
|
+
: 'current-sender decision authority is unavailable for this turn',
|
|
2940
|
+
}],
|
|
2941
|
+
},
|
|
2942
|
+
});
|
|
2943
|
+
return;
|
|
2944
|
+
}
|
|
2546
2945
|
if (input.allowFinishWithoutReply === false &&
|
|
2547
2946
|
(dynamicToolRequest.kind === 'finish-without-reply' ||
|
|
2548
2947
|
dynamicToolRequest.kind === 'invalid-finish-without-reply-arguments')) {
|
|
@@ -2608,7 +3007,6 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
2608
3007
|
});
|
|
2609
3008
|
return;
|
|
2610
3009
|
}
|
|
2611
|
-
const dynamicToolRequestDeliveryContextOrdinal = currentDeliveryContextOrdinal();
|
|
2612
3010
|
const dynamicToolDeliveryContextOrdinal = dynamicToolRequest.kind === 'finish-without-reply' ||
|
|
2613
3011
|
dynamicToolRequest.kind === 'react-to-message' ||
|
|
2614
3012
|
dynamicToolRequest.kind === 'select-reply-target' ||
|
|
@@ -2668,6 +3066,7 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
2668
3066
|
computerToolsLockedAfterUserPause = true;
|
|
2669
3067
|
closeLiveTurn();
|
|
2670
3068
|
}
|
|
3069
|
+
let dynamicToolRequestSettled = false;
|
|
2671
3070
|
const runDynamicTool = () => withHostedCanonicalWritePort(hostedCanonicalWritePort, async () => {
|
|
2672
3071
|
const existingFinalAction = resolveFinalActionPatch(dynamicToolRequestDeliveryContextOrdinal);
|
|
2673
3072
|
const vaultFileOwnsFinalAction = existingFinalAction?.kind === 'none' &&
|
|
@@ -2676,7 +3075,7 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
2676
3075
|
!vaultFileOwnsFinalAction;
|
|
2677
3076
|
if (shouldSuppressDeliveryContext(dynamicToolRequestDeliveryContextOrdinal) &&
|
|
2678
3077
|
!vaultFileMayClassifyAfterGenericNoReply &&
|
|
2679
|
-
|
|
3078
|
+
isResponseAttachmentDynamicToolRequest(dynamicToolRequest)) {
|
|
2680
3079
|
return {
|
|
2681
3080
|
rpcResult: {
|
|
2682
3081
|
contentItems: [{
|
|
@@ -2692,7 +3091,65 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
2692
3091
|
};
|
|
2693
3092
|
}
|
|
2694
3093
|
const hostedToolContext = resolveCodexAppServerHostedToolContext(input);
|
|
2695
|
-
await hostedToolContext?.beforeToolExecution?.();
|
|
3094
|
+
await hostedToolContext?.beforeToolExecution?.(dynamicToolRequestDeliveryContextOrdinal);
|
|
3095
|
+
let requestedLocalAtRecovery = null;
|
|
3096
|
+
if ((dynamicToolRequest.kind === 'automation' ||
|
|
3097
|
+
dynamicToolRequest.kind === 'invalid-automation-arguments') &&
|
|
3098
|
+
dynamicToolRequest.localAtRecovery) {
|
|
3099
|
+
requestedLocalAtRecovery = dynamicToolRequest.localAtRecovery;
|
|
3100
|
+
}
|
|
3101
|
+
else if (dynamicToolRequest.kind ===
|
|
3102
|
+
'automation-local-at-recovery-dismissal') {
|
|
3103
|
+
requestedLocalAtRecovery = {
|
|
3104
|
+
recoveryKey: dynamicToolRequest.recoveryKey,
|
|
3105
|
+
resolvedLocalDate: dynamicToolRequest.resolvedLocalDate,
|
|
3106
|
+
};
|
|
3107
|
+
}
|
|
3108
|
+
if (requestedLocalAtRecovery) {
|
|
3109
|
+
const clarificationKey = buildRequiredAutomationLocalAtClarificationKey({
|
|
3110
|
+
resolvedLocalDate: requestedLocalAtRecovery.resolvedLocalDate,
|
|
3111
|
+
targetKey: requestedLocalAtRecovery.recoveryKey,
|
|
3112
|
+
});
|
|
3113
|
+
if (!requiredAutomationLocalAtClarifications.has(clarificationKey)) {
|
|
3114
|
+
return {
|
|
3115
|
+
rpcResult: {
|
|
3116
|
+
contentItems: [{
|
|
3117
|
+
text: 'local-time recovery key or trusted date is not pending in this active root turn',
|
|
3118
|
+
type: 'inputText',
|
|
3119
|
+
}],
|
|
3120
|
+
success: false,
|
|
3121
|
+
},
|
|
3122
|
+
};
|
|
3123
|
+
}
|
|
3124
|
+
if (dynamicToolRequest.kind ===
|
|
3125
|
+
'automation-local-at-recovery-dismissal') {
|
|
3126
|
+
requiredAutomationLocalAtClarifications.delete(clarificationKey);
|
|
3127
|
+
return {
|
|
3128
|
+
rpcResult: {
|
|
3129
|
+
contentItems: [{
|
|
3130
|
+
text: 'local-time reminder recovery dismissed; no automation was changed',
|
|
3131
|
+
type: 'inputText',
|
|
3132
|
+
}],
|
|
3133
|
+
success: true,
|
|
3134
|
+
},
|
|
3135
|
+
};
|
|
3136
|
+
}
|
|
3137
|
+
}
|
|
3138
|
+
if (dynamicToolRequest.kind === 'invalid-automation-arguments' &&
|
|
3139
|
+
(dynamicToolRequest.safeFailureCode === 'local_at_gap' ||
|
|
3140
|
+
dynamicToolRequest.safeFailureCode === 'local_at_fold') &&
|
|
3141
|
+
dynamicToolRequest.resolvedLocalDate &&
|
|
3142
|
+
dynamicToolRequest.localAtTargetKey &&
|
|
3143
|
+
dynamicToolRequest.localAtTargetLabel &&
|
|
3144
|
+
!dynamicToolRequest.localAtRecovery) {
|
|
3145
|
+
const requirement = {
|
|
3146
|
+
code: dynamicToolRequest.safeFailureCode,
|
|
3147
|
+
resolvedLocalDate: dynamicToolRequest.resolvedLocalDate,
|
|
3148
|
+
targetKey: dynamicToolRequest.localAtTargetKey,
|
|
3149
|
+
targetLabel: dynamicToolRequest.localAtTargetLabel,
|
|
3150
|
+
};
|
|
3151
|
+
requiredAutomationLocalAtClarifications.set(buildRequiredAutomationLocalAtClarificationKey(requirement), requirement);
|
|
3152
|
+
}
|
|
2696
3153
|
const result = await executeMurphDynamicToolRequest({
|
|
2697
3154
|
authorizeAcceptedMessageTarget: input.authorizeAcceptedMessageTarget ?? null,
|
|
2698
3155
|
assistantStyleSettingsOverlay,
|
|
@@ -2710,16 +3167,39 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
2710
3167
|
hostedToolContext,
|
|
2711
3168
|
materializeWorkspaceArtifacts: input.materializeWorkspaceArtifacts ?? null,
|
|
2712
3169
|
currentResponseMedia: responseMedia,
|
|
3170
|
+
currentResponseCard: responseCard ?? responseCardTextFallback,
|
|
3171
|
+
groupChallengeResponseCardAllowed: input.groupConversation === true &&
|
|
3172
|
+
input.dynamicTools.some((tool) => tool.namespace === 'murph' &&
|
|
3173
|
+
tool.name === 'attach_response_card'),
|
|
3174
|
+
groupSharedReadTurnState,
|
|
3175
|
+
privateDirectResponseCardAllowed: input.groupConversation === false,
|
|
3176
|
+
telegramPresentationResponseCardAllowed: input.dynamicTools.some((tool) => tool.namespace === 'murph' &&
|
|
3177
|
+
(tool.name === 'attach_exercise_routine_card' ||
|
|
3178
|
+
tool.name === 'attach_telegram_rich_content')),
|
|
2713
3179
|
deliveryContextOrdinal: dynamicToolRequestDeliveryContextOrdinal,
|
|
2714
3180
|
nextUsageOrdinal: () => nextDynamicToolUsageOrdinal++,
|
|
3181
|
+
onboardingFirstReadCompletionTransitionAvailable: input.onboardingFirstReadCompletionTransitionAvailable ?? false,
|
|
2715
3182
|
productFeedbackRecorder: input.productFeedbackRecorder ?? null,
|
|
2716
3183
|
progressDelivery: dynamicToolRequest.kind === 'send-progress-update'
|
|
2717
3184
|
? dynamicToolProgressDelivery
|
|
2718
|
-
:
|
|
3185
|
+
: dynamicToolRequest.kind === 'group'
|
|
3186
|
+
? resolveCodexAppServerProgressDelivery(input)
|
|
3187
|
+
: null,
|
|
2719
3188
|
publicFetchImpl: input.publicInternetFetch ?? null,
|
|
2720
3189
|
request: dynamicToolRequest,
|
|
2721
3190
|
requireHostedPrivateImageDelivery: input.requireHostedPrivateImageDelivery ?? false,
|
|
2722
3191
|
vaultRoot: input.vaultRoot ?? null,
|
|
3192
|
+
voiceMemoPhaseTimingRecorder: (dynamicToolRequest.kind === 'generate-voice-memo' ||
|
|
3193
|
+
dynamicToolRequest.kind === 'generate-song') &&
|
|
3194
|
+
input.onTraceEvent
|
|
3195
|
+
? (timing) => {
|
|
3196
|
+
emitCodexGeneratedAudioPhaseTimingTrace({
|
|
3197
|
+
codexThreadId,
|
|
3198
|
+
onTraceEvent: input.onTraceEvent,
|
|
3199
|
+
timing,
|
|
3200
|
+
});
|
|
3201
|
+
}
|
|
3202
|
+
: null,
|
|
2723
3203
|
voiceMemoRuntime: dynamicToolRequest.kind === 'generate-voice-memo' ||
|
|
2724
3204
|
dynamicToolRequest.kind === 'generate-song'
|
|
2725
3205
|
? input.voiceMemoRuntime ?? null
|
|
@@ -2728,6 +3208,7 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
2728
3208
|
? input.askGrokRuntime ?? null
|
|
2729
3209
|
: null,
|
|
2730
3210
|
askGrokTurnState,
|
|
3211
|
+
generateSongTurnState,
|
|
2731
3212
|
});
|
|
2732
3213
|
return result;
|
|
2733
3214
|
}).then(async (result) => {
|
|
@@ -2744,6 +3225,62 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
2744
3225
|
!requiredVaultFileApprovalUrls.includes(result.requiredVaultFileApprovalUrl)) {
|
|
2745
3226
|
requiredVaultFileApprovalUrls.push(result.requiredVaultFileApprovalUrl);
|
|
2746
3227
|
}
|
|
3228
|
+
if (result.finalActionPatch?.kind === 'none' &&
|
|
3229
|
+
(result.finalActionPatch.owner === 'group-email'
|
|
3230
|
+
|| result.finalActionPatch.owner === 'current-sender-ask')) {
|
|
3231
|
+
if (result.externallyVisibleOutput) {
|
|
3232
|
+
markExternallyVisibleAssistantOutput(dynamicToolRequestDeliveryContextOrdinal);
|
|
3233
|
+
}
|
|
3234
|
+
applyTerminalExternalEffectNoReplyPatch(result.finalActionPatch, dynamicToolRequestDeliveryContextOrdinal);
|
|
3235
|
+
// Interrupt while the app-server is still waiting on this dynamic
|
|
3236
|
+
// tool request. Returning the tool result first lets Codex start a
|
|
3237
|
+
// follow-up provider request before the interrupt is processed, and
|
|
3238
|
+
// an interrupt racing that continuation can leave the turn open.
|
|
3239
|
+
// TurnAborted resolves the pending server request structurally, so a
|
|
3240
|
+
// terminal external effect must not also write a tool response.
|
|
3241
|
+
dynamicToolRequestSettled = true;
|
|
3242
|
+
await interruptLiveTurnForTerminalNoReply();
|
|
3243
|
+
return;
|
|
3244
|
+
}
|
|
3245
|
+
if (result.externallyVisibleOutput) {
|
|
3246
|
+
markExternallyVisibleAssistantOutput(dynamicToolRequestDeliveryContextOrdinal);
|
|
3247
|
+
}
|
|
3248
|
+
if (result.responseCardPatch) {
|
|
3249
|
+
try {
|
|
3250
|
+
applyResponseCardPatch(result.responseCardPatch.card, dynamicToolRequestDeliveryContextOrdinal);
|
|
3251
|
+
}
|
|
3252
|
+
catch {
|
|
3253
|
+
void tryWriteRpcMessage({
|
|
3254
|
+
id: requestId,
|
|
3255
|
+
result: {
|
|
3256
|
+
success: false,
|
|
3257
|
+
contentItems: [{
|
|
3258
|
+
type: 'inputText',
|
|
3259
|
+
text: 'response card unavailable for this final response',
|
|
3260
|
+
}],
|
|
3261
|
+
},
|
|
3262
|
+
});
|
|
3263
|
+
return;
|
|
3264
|
+
}
|
|
3265
|
+
}
|
|
3266
|
+
if (result.responseCardTextFallbackPatch) {
|
|
3267
|
+
try {
|
|
3268
|
+
applyResponseCardTextFallbackPatch(result.responseCardTextFallbackPatch.card, dynamicToolRequestDeliveryContextOrdinal);
|
|
3269
|
+
}
|
|
3270
|
+
catch {
|
|
3271
|
+
void tryWriteRpcMessage({
|
|
3272
|
+
id: requestId,
|
|
3273
|
+
result: {
|
|
3274
|
+
success: false,
|
|
3275
|
+
contentItems: [{
|
|
3276
|
+
type: 'inputText',
|
|
3277
|
+
text: 'response card unavailable for this final response',
|
|
3278
|
+
}],
|
|
3279
|
+
},
|
|
3280
|
+
});
|
|
3281
|
+
return;
|
|
3282
|
+
}
|
|
3283
|
+
}
|
|
2747
3284
|
if (result.responseMediaPatch) {
|
|
2748
3285
|
try {
|
|
2749
3286
|
applyResponseMediaPatch(result.responseMediaPatch, dynamicToolRequestDeliveryContextOrdinal);
|
|
@@ -2808,14 +3345,33 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
2808
3345
|
result.rpcResult.success) {
|
|
2809
3346
|
markExternallyVisibleAssistantOutput(dynamicToolDeliveryContextOrdinal ?? 0);
|
|
2810
3347
|
}
|
|
2811
|
-
|
|
3348
|
+
if (dynamicToolRequest.kind === 'automation' &&
|
|
3349
|
+
result.rpcResult.success &&
|
|
3350
|
+
dynamicToolRequest.localAtRecovery) {
|
|
3351
|
+
const recoveryKey = buildRequiredAutomationLocalAtClarificationKey({
|
|
3352
|
+
resolvedLocalDate: dynamicToolRequest.localAtRecovery.resolvedLocalDate,
|
|
3353
|
+
targetKey: dynamicToolRequest.localAtRecovery.recoveryKey,
|
|
3354
|
+
});
|
|
3355
|
+
if (requiredAutomationLocalAtClarifications.has(recoveryKey)) {
|
|
3356
|
+
requiredAutomationLocalAtClarifications.delete(recoveryKey);
|
|
3357
|
+
}
|
|
3358
|
+
}
|
|
3359
|
+
const writeFailure = tryWriteRpcMessage({
|
|
2812
3360
|
id: requestId,
|
|
2813
3361
|
result: result.rpcResult,
|
|
2814
3362
|
});
|
|
3363
|
+
if (writeFailure) {
|
|
3364
|
+
return;
|
|
3365
|
+
}
|
|
3366
|
+
dynamicToolRequestSettled = true;
|
|
2815
3367
|
}).catch((error) => {
|
|
2816
3368
|
if (dynamicToolRequest.kind === 'send-progress-update') {
|
|
2817
3369
|
releaseDynamicProgressPending?.();
|
|
2818
3370
|
}
|
|
3371
|
+
if (dynamicToolRequestSettled) {
|
|
3372
|
+
rejectOnce(error);
|
|
3373
|
+
return;
|
|
3374
|
+
}
|
|
2819
3375
|
pushRuntimeIssueInput(createDynamicToolRuntimeIssueInput({
|
|
2820
3376
|
request: dynamicToolRequest,
|
|
2821
3377
|
reason: 'execution_failed',
|
|
@@ -2853,6 +3409,10 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
2853
3409
|
const providerRequestStartedAtMs = codexProviderRequestStartedAtMs;
|
|
2854
3410
|
const isTurnStartedNotification = isCodexTurnStartedMethod(method);
|
|
2855
3411
|
const isTurnCompletedNotification = isCodexTurnCompletedMethod(method);
|
|
3412
|
+
if (isTurnStartedNotification) {
|
|
3413
|
+
currentTurnStartedNotificationObserved =
|
|
3414
|
+
turnId !== null && extractCodexTurnIdFromMessage(message) === turnId;
|
|
3415
|
+
}
|
|
2856
3416
|
const shouldCaptureTurnStartedNotification = providerRequestStartedAtMs !== null &&
|
|
2857
3417
|
isTurnStartedNotification &&
|
|
2858
3418
|
codexTimingTurnStartedNotificationElapsedMs === null;
|
|
@@ -2876,7 +3436,8 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
2876
3436
|
lastEventError = extractCodexErrorMessage(message) ?? lastEventError;
|
|
2877
3437
|
lastEventErrorInfo = extractCodexErrorInfo(message) ?? lastEventErrorInfo;
|
|
2878
3438
|
const normalizedEvent = normalizeCodexEvent(message);
|
|
2879
|
-
const runtimeIssueInput =
|
|
3439
|
+
const runtimeIssueInput = actionRuntimeIssueTracker.recordEvent({
|
|
3440
|
+
activeTurnId: turnId,
|
|
2880
3441
|
normalizedEvent,
|
|
2881
3442
|
rawEvent: message,
|
|
2882
3443
|
});
|
|
@@ -2937,7 +3498,7 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
2937
3498
|
}
|
|
2938
3499
|
}
|
|
2939
3500
|
if (normalizedEvent.kind !== 'status_item' ||
|
|
2940
|
-
normalizedEvent.itemType !== '
|
|
3501
|
+
normalizedEvent.itemType !== 'contextCompaction') {
|
|
2941
3502
|
input.onTraceEvent?.({
|
|
2942
3503
|
codexThreadId,
|
|
2943
3504
|
rawEvent: message,
|
|
@@ -2974,6 +3535,8 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
2974
3535
|
deliveryContextOrdinal: completedResponseDeliveryContextOrdinal,
|
|
2975
3536
|
response: completedFinalAgentMessage,
|
|
2976
3537
|
media: [...responseMedia],
|
|
3538
|
+
card: responseCard,
|
|
3539
|
+
cardTextFallback: responseCardTextFallback,
|
|
2977
3540
|
...(completedResponseTargetInputId
|
|
2978
3541
|
? { targetInputId: completedResponseTargetInputId }
|
|
2979
3542
|
: {}),
|
|
@@ -2983,6 +3546,8 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
2983
3546
|
assistantStreamOrder.length = 0;
|
|
2984
3547
|
responseMedia = [];
|
|
2985
3548
|
}
|
|
3549
|
+
responseCard = null;
|
|
3550
|
+
responseCardTextFallback = null;
|
|
2986
3551
|
completedUserMessageOrdinal += 1;
|
|
2987
3552
|
}
|
|
2988
3553
|
const progressEvent = extractCodexProgressEventFromNormalized(normalizedEvent);
|
|
@@ -3008,6 +3573,12 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
3008
3573
|
return;
|
|
3009
3574
|
}
|
|
3010
3575
|
const status = extractCodexTurnStatus(message);
|
|
3576
|
+
if (status === 'interrupted' &&
|
|
3577
|
+
terminalNoReplyInterruptRequested) {
|
|
3578
|
+
turnTerminal = true;
|
|
3579
|
+
completeTurn?.();
|
|
3580
|
+
return;
|
|
3581
|
+
}
|
|
3011
3582
|
if (isFailedCodexTurnStatus(status)) {
|
|
3012
3583
|
turnTerminal = true;
|
|
3013
3584
|
failTurn?.(buildCodexTurnFailedError({
|
|
@@ -3034,30 +3605,61 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
3034
3605
|
});
|
|
3035
3606
|
return;
|
|
3036
3607
|
}
|
|
3037
|
-
|
|
3608
|
+
const eventMethod = readCodexEventMethod(message);
|
|
3609
|
+
const messageTurnId = extractCodexTurnIdFromMessage(message);
|
|
3610
|
+
if (isCodexTurnStartedMethod(eventMethod)) {
|
|
3611
|
+
if (!messageTurnId) {
|
|
3612
|
+
return;
|
|
3613
|
+
}
|
|
3614
|
+
const usageKey = createCodexSubagentTurnUsageKey({
|
|
3615
|
+
threadId,
|
|
3616
|
+
turnId: messageTurnId,
|
|
3617
|
+
});
|
|
3618
|
+
if (subagentTokenUsageByTurn.has(usageKey)) {
|
|
3619
|
+
return;
|
|
3620
|
+
}
|
|
3621
|
+
if (!trackedSubagentUsageThreadIds.has(threadId)
|
|
3622
|
+
&& trackedSubagentUsageThreadIds.size >= MAX_CODEX_SUBAGENT_USAGE_THREADS) {
|
|
3623
|
+
const evictableThreadId = collabReceiverThreadIds.has(threadId)
|
|
3624
|
+
? [...trackedSubagentUsageThreadIds].find((trackedThreadId) => !collabReceiverThreadIds.has(trackedThreadId))
|
|
3625
|
+
: undefined;
|
|
3626
|
+
if (evictableThreadId === undefined) {
|
|
3627
|
+
return;
|
|
3628
|
+
}
|
|
3629
|
+
trackedSubagentUsageThreadIds.delete(evictableThreadId);
|
|
3630
|
+
for (const [trackedUsageKey, sample] of subagentTokenUsageByTurn) {
|
|
3631
|
+
if (sample.threadId === evictableThreadId) {
|
|
3632
|
+
subagentTokenUsageByTurn.delete(trackedUsageKey);
|
|
3633
|
+
}
|
|
3634
|
+
}
|
|
3635
|
+
}
|
|
3636
|
+
trackedSubagentUsageThreadIds.add(threadId);
|
|
3637
|
+
subagentTokenUsageByTurn.set(usageKey, {
|
|
3638
|
+
firstEvent: null,
|
|
3639
|
+
lastEvent: null,
|
|
3640
|
+
occurredAt: new Date().toISOString(),
|
|
3641
|
+
threadId,
|
|
3642
|
+
turnId: messageTurnId,
|
|
3643
|
+
});
|
|
3038
3644
|
return;
|
|
3039
3645
|
}
|
|
3040
|
-
|
|
3041
|
-
|
|
3042
|
-
sample.lastEvent = message;
|
|
3646
|
+
if (!isAssistantCodexTokenUsageEventType(eventMethod)
|
|
3647
|
+
|| !messageTurnId) {
|
|
3043
3648
|
return;
|
|
3044
3649
|
}
|
|
3045
|
-
|
|
3046
|
-
|
|
3047
|
-
|
|
3048
|
-
// is never billable) before dropping a billable child's usage.
|
|
3049
|
-
const evictableThreadId = collabReceiverThreadIds.has(threadId)
|
|
3050
|
-
? [...subagentTokenUsageByThread.keys()].find((bufferedThreadId) => !collabReceiverThreadIds.has(bufferedThreadId))
|
|
3051
|
-
: undefined;
|
|
3052
|
-
if (evictableThreadId === undefined) {
|
|
3053
|
-
return;
|
|
3054
|
-
}
|
|
3055
|
-
subagentTokenUsageByThread.delete(evictableThreadId);
|
|
3056
|
-
}
|
|
3057
|
-
subagentTokenUsageByThread.set(threadId, {
|
|
3058
|
-
firstEvent: message,
|
|
3059
|
-
lastEvent: message,
|
|
3650
|
+
const usageKey = createCodexSubagentTurnUsageKey({
|
|
3651
|
+
threadId,
|
|
3652
|
+
turnId: messageTurnId,
|
|
3060
3653
|
});
|
|
3654
|
+
const sample = subagentTokenUsageByTurn.get(usageKey);
|
|
3655
|
+
if (!sample) {
|
|
3656
|
+
// A child token sample without an observed start has no safe accounting
|
|
3657
|
+
// timestamp. Parent collab evidence authorizes the child but cannot
|
|
3658
|
+
// establish when its provider operation began.
|
|
3659
|
+
return;
|
|
3660
|
+
}
|
|
3661
|
+
sample.firstEvent ??= message;
|
|
3662
|
+
sample.lastEvent = message;
|
|
3061
3663
|
};
|
|
3062
3664
|
const handleStaleParentTurnMessage = (message) => {
|
|
3063
3665
|
const requestId = readCodexRpcServerRequestId(message);
|
|
@@ -3170,10 +3772,17 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
3170
3772
|
rejectPreStartParentTurnRequest(requestId);
|
|
3171
3773
|
return;
|
|
3172
3774
|
}
|
|
3173
|
-
handleAcceptedServerRequest(message, requestId);
|
|
3775
|
+
trackDynamicToolRequest(handleAcceptedServerRequest(message, requestId));
|
|
3174
3776
|
return;
|
|
3175
3777
|
}
|
|
3176
|
-
if (
|
|
3778
|
+
if (messageTurnId === null &&
|
|
3779
|
+
method === 'model/rerouted' &&
|
|
3780
|
+
!currentTurnStartedNotificationObserved) {
|
|
3781
|
+
return;
|
|
3782
|
+
}
|
|
3783
|
+
if (isReusedWarmProcess &&
|
|
3784
|
+
messageTurnId === null &&
|
|
3785
|
+
method !== 'model/rerouted') {
|
|
3177
3786
|
return;
|
|
3178
3787
|
}
|
|
3179
3788
|
handleAcceptedEvent(message, method);
|
|
@@ -3216,15 +3825,31 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
3216
3825
|
};
|
|
3217
3826
|
const steerLiveTurn = async (steerInput) => {
|
|
3218
3827
|
const liveTurn = requireLiveTurnIds();
|
|
3219
|
-
const
|
|
3220
|
-
images:
|
|
3828
|
+
const preparedSteerImages = await materializeCodexImages({
|
|
3829
|
+
images: normalizeCodexAppServerImageDetails({
|
|
3830
|
+
images: steerInput.images,
|
|
3831
|
+
model: input.model,
|
|
3832
|
+
modelProvider: input.modelProvider,
|
|
3833
|
+
turnKind: 'steer',
|
|
3834
|
+
}),
|
|
3221
3835
|
tempRoot: input.tempRoot,
|
|
3222
3836
|
});
|
|
3223
|
-
|
|
3224
|
-
|
|
3225
|
-
|
|
3226
|
-
|
|
3227
|
-
|
|
3837
|
+
const deliveryContextOrdinal = automationRelativeDateReferenceWindows.length;
|
|
3838
|
+
automationRelativeDateReferenceWindows.push(mergeAutomationRelativeDateReferenceWindows(automationRelativeDateReferenceWindows.at(-1) ?? null, steerInput.relativeDateReferenceWindow ?? null));
|
|
3839
|
+
try {
|
|
3840
|
+
await withCodexRpcTimeout(sendRequest('turn/steer', buildCodexTurnSteerParams({
|
|
3841
|
+
...liveTurn,
|
|
3842
|
+
images: preparedSteerImages,
|
|
3843
|
+
prompt: steerInput.prompt,
|
|
3844
|
+
})), CODEX_RPC_STEER_TIMEOUT_MS, 'turn/steer');
|
|
3845
|
+
}
|
|
3846
|
+
catch (error) {
|
|
3847
|
+
if (automationRelativeDateReferenceWindows.length ===
|
|
3848
|
+
deliveryContextOrdinal + 1) {
|
|
3849
|
+
automationRelativeDateReferenceWindows.pop();
|
|
3850
|
+
}
|
|
3851
|
+
throw error;
|
|
3852
|
+
}
|
|
3228
3853
|
};
|
|
3229
3854
|
const interruptLiveTurn = async () => {
|
|
3230
3855
|
const liveTurn = requireLiveTurnIds();
|
|
@@ -3232,6 +3857,17 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
3232
3857
|
scheduleInterruptCleanupTimeout();
|
|
3233
3858
|
await withCodexRpcTimeout(sendRequest('turn/interrupt', buildCodexTurnInterruptParams(liveTurn)), CODEX_RPC_STEER_TIMEOUT_MS, 'turn/interrupt');
|
|
3234
3859
|
};
|
|
3860
|
+
const interruptLiveTurnForTerminalNoReply = async () => {
|
|
3861
|
+
if (!codexThreadId || !turnId || turnTerminal) {
|
|
3862
|
+
throw buildLiveTurnInactiveError();
|
|
3863
|
+
}
|
|
3864
|
+
terminalNoReplyInterruptRequested = true;
|
|
3865
|
+
scheduleInterruptCleanupTimeout();
|
|
3866
|
+
await withCodexRpcTimeout(sendRequest('turn/interrupt', buildCodexTurnInterruptParams({
|
|
3867
|
+
threadId: codexThreadId,
|
|
3868
|
+
turnId,
|
|
3869
|
+
})), CODEX_RPC_STEER_TIMEOUT_MS, 'turn/interrupt');
|
|
3870
|
+
};
|
|
3235
3871
|
const registerLiveTurn = () => {
|
|
3236
3872
|
if (computerToolsLockedAfterUserPause ||
|
|
3237
3873
|
liveTurnOpen ||
|
|
@@ -3301,7 +3937,11 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
3301
3937
|
emitAppServerTimingTrace('spawn-ready');
|
|
3302
3938
|
await codexProcess.initialize();
|
|
3303
3939
|
lifecycleStage = 'initialized';
|
|
3304
|
-
emitAppServerTimingTrace('initialized');
|
|
3940
|
+
emitAppServerTimingTrace(codexProcess.wasPreinitialized ? 'preinitialized' : 'initialized');
|
|
3941
|
+
}
|
|
3942
|
+
else if (!codexProcess.hasCompletedTurn) {
|
|
3943
|
+
lifecycleStage = 'initialized';
|
|
3944
|
+
emitAppServerTimingTrace('preinitialized');
|
|
3305
3945
|
}
|
|
3306
3946
|
else {
|
|
3307
3947
|
lifecycleStage = 'initialized';
|
|
@@ -3347,26 +3987,28 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
3347
3987
|
codexProcess.noteBoundThreadServiceTier(input.serviceTier ?? null);
|
|
3348
3988
|
const turnStartRequest = sendRequest('turn/start', buildCodexTurnStartParams({
|
|
3349
3989
|
input,
|
|
3350
|
-
|
|
3990
|
+
images: input.preparedImages,
|
|
3351
3991
|
codexThreadId,
|
|
3352
3992
|
}));
|
|
3993
|
+
const providerStartedAtMonotonicMs = readAssistantProviderStartMonotonicTickMs();
|
|
3353
3994
|
// The child can begin executing (including side-effecting commands) as
|
|
3354
3995
|
// soon as the turn/start request is written, so the provider-start
|
|
3355
3996
|
// barrier arms here rather than at the acknowledgement. A death between
|
|
3356
3997
|
// write and response must never be classified as pre-provider work.
|
|
3357
|
-
notifyProviderRequestStarted();
|
|
3998
|
+
notifyProviderRequestStarted(providerStartedAtMonotonicMs);
|
|
3358
3999
|
const turnResult = await withCodexRpcTimeout(turnStartRequest, CODEX_RPC_DEFAULT_TIMEOUT_MS, 'turn/start');
|
|
3359
4000
|
acceptTurnStartResultTurnId(extractCodexTurnIdFromResult(turnResult));
|
|
3360
4001
|
lifecycleStage = 'turn_started';
|
|
3361
4002
|
emitAppServerTimingTrace('turn-started');
|
|
3362
|
-
registerLiveTurn();
|
|
3363
4003
|
lifecycleStage = 'turn_running';
|
|
3364
4004
|
await turnCompleted;
|
|
3365
4005
|
clearInterruptCleanupTimer();
|
|
4006
|
+
await drainPendingDynamicToolRequests();
|
|
3366
4007
|
await drainPendingDynamicToolExecutions();
|
|
3367
4008
|
await drainPendingProgressDeliveries();
|
|
3368
4009
|
emitActionDiagnosticsTrace();
|
|
3369
4010
|
lifecycleStage = 'turn_completed';
|
|
4011
|
+
codexProcess.noteTurnCompleted();
|
|
3370
4012
|
emitAppServerTimingTrace('turn-completed');
|
|
3371
4013
|
closeLiveTurn();
|
|
3372
4014
|
if (stdinFailure) {
|
|
@@ -3412,6 +4054,7 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
3412
4054
|
? (buildRecordedTerminationError(lastEventError) ?? error)
|
|
3413
4055
|
: error;
|
|
3414
4056
|
emitActionDiagnosticsTrace();
|
|
4057
|
+
await drainPendingDynamicToolRequests();
|
|
3415
4058
|
dynamicToolAbortController.abort();
|
|
3416
4059
|
await drainPendingDynamicToolExecutions();
|
|
3417
4060
|
await drainPendingProgressDeliveries();
|
|
@@ -3454,7 +4097,9 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
3454
4097
|
(latestFinalActionPatch?.kind === 'none' ||
|
|
3455
4098
|
(!suppressTrailingSteerCandidateForEarlierNoReply &&
|
|
3456
4099
|
(normalizeNullableString(extractedFinalMessage) !== null ||
|
|
3457
|
-
responseMedia.length > 0
|
|
4100
|
+
responseMedia.length > 0 ||
|
|
4101
|
+
responseCard !== null ||
|
|
4102
|
+
responseCardTextFallback !== null)));
|
|
3458
4103
|
if (shouldPromoteTrailingSteerCandidate) {
|
|
3459
4104
|
promoteTrailingSteerCandidate();
|
|
3460
4105
|
finalTrailingSteerCandidate = null;
|
|
@@ -3465,12 +4110,29 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
3465
4110
|
: suppressTrailingSteerCandidateForEarlierNoReply
|
|
3466
4111
|
? responseMedia
|
|
3467
4112
|
: finalTrailingSteerCandidate?.media ?? responseMedia;
|
|
4113
|
+
const finalResponseCard = latestFinalActionPatch?.kind === 'none'
|
|
4114
|
+
? responseCard
|
|
4115
|
+
: suppressTrailingSteerCandidateForEarlierNoReply
|
|
4116
|
+
? responseCard
|
|
4117
|
+
: finalTrailingSteerCandidate?.card ?? responseCard;
|
|
4118
|
+
if (finalResponseCard !== null && finalResponseMedia.length > 0) {
|
|
4119
|
+
throw new VaultCliError('ASSISTANT_RESPONSE_CARD_MEDIA_CONFLICT', 'A response card cannot be combined with response media.');
|
|
4120
|
+
}
|
|
3468
4121
|
const finalDeliveryContextOrdinal = latestFinalActionPatch?.kind === 'none'
|
|
3469
4122
|
? latestDeliveryContextOrdinal
|
|
3470
4123
|
: suppressTrailingSteerCandidateForEarlierNoReply
|
|
3471
4124
|
? latestDeliveryContextOrdinal
|
|
3472
4125
|
: finalTrailingSteerCandidate?.deliveryContextOrdinal ??
|
|
3473
4126
|
latestDeliveryContextOrdinal;
|
|
4127
|
+
const finalResponseCardTextFallback = latestFinalActionPatch?.kind === 'none'
|
|
4128
|
+
? responseCardTextFallback
|
|
4129
|
+
: suppressTrailingSteerCandidateForEarlierNoReply
|
|
4130
|
+
? responseCardTextFallback
|
|
4131
|
+
: finalTrailingSteerCandidate?.cardTextFallback
|
|
4132
|
+
?? responseCardTextFallback;
|
|
4133
|
+
if (finalResponseCardTextFallback !== null && finalResponseMedia.length > 0) {
|
|
4134
|
+
throw new VaultCliError('ASSISTANT_RESPONSE_CARD_MEDIA_CONFLICT', 'Response card text recovery cannot be combined with response media.');
|
|
4135
|
+
}
|
|
3474
4136
|
const finalActionPatch = resolveFinalActionPatch(finalDeliveryContextOrdinal);
|
|
3475
4137
|
const requiredUserVisibleOutput = hasRequiredUserVisibleOutput();
|
|
3476
4138
|
const noReplySelected = finalActionPatch?.kind === 'none' && !requiredUserVisibleOutput;
|
|
@@ -3480,7 +4142,24 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
3480
4142
|
const modelFinalMessage = noReplySelected || suppressTrailingSteerCandidateForEarlierNoReply
|
|
3481
4143
|
? ''
|
|
3482
4144
|
: selectedFinalMessage;
|
|
3483
|
-
const
|
|
4145
|
+
const semanticFinalMessage = finalResponseCard
|
|
4146
|
+
? renderAssistantResponseCardText(finalResponseCard)
|
|
4147
|
+
: finalResponseCardTextFallback
|
|
4148
|
+
? renderAssistantWorkoutResponseCardText(finalResponseCardTextFallback)
|
|
4149
|
+
: modelFinalMessage;
|
|
4150
|
+
const requiredAutomationLocalAtClarificationsInOrder = [...requiredAutomationLocalAtClarifications.values()];
|
|
4151
|
+
const deliveredFinalResponseCard = requiredAutomationLocalAtClarificationsInOrder.length === 0
|
|
4152
|
+
? finalResponseCard
|
|
4153
|
+
: null;
|
|
4154
|
+
const finalMessage = appendRequiredVaultFileApprovalUrls(appendRequiredAutomationLocalAtClarification(semanticFinalMessage, requiredAutomationLocalAtClarificationsInOrder), requiredVaultFileApprovalUrls);
|
|
4155
|
+
const transcriptMessage = appendRequiredAutomationLocalAtClarification(finalResponseCard
|
|
4156
|
+
? requiredAutomationLocalAtClarificationsInOrder.length === 0
|
|
4157
|
+
? renderAssistantResponseCardTranscriptText(finalResponseCard)
|
|
4158
|
+
: renderAssistantResponseCardText(finalResponseCard)
|
|
4159
|
+
: finalResponseCardTextFallback
|
|
4160
|
+
? renderAssistantWorkoutResponseCardTranscriptText(finalResponseCardTextFallback)
|
|
4161
|
+
: normalizeNullableString(modelFinalMessage) ??
|
|
4162
|
+
(finalResponseMedia.length > 0 ? '' : null), requiredAutomationLocalAtClarificationsInOrder);
|
|
3484
4163
|
if (noReplySelected &&
|
|
3485
4164
|
normalizeNullableString(extractedFinalMessage) !== null) {
|
|
3486
4165
|
emitCodexSuppressedFinalMessageTrace({
|
|
@@ -3493,14 +4172,16 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
3493
4172
|
const filteredPrecedingAgentMessageSegments = precedingAgentMessageSegments
|
|
3494
4173
|
.filter((segment) => !shouldSuppressDeliveryContext(segment.deliveryContextOrdinal));
|
|
3495
4174
|
const finalHasDeliverableOutput = normalizeNullableString(finalMessage) !== null ||
|
|
3496
|
-
(!noReplySelected && finalResponseMedia.length > 0
|
|
4175
|
+
(!noReplySelected && (finalResponseMedia.length > 0 ||
|
|
4176
|
+
deliveredFinalResponseCard !== null ||
|
|
4177
|
+
finalResponseCardTextFallback !== null));
|
|
3497
4178
|
return {
|
|
3498
4179
|
acceptedNoReplyDeliveryContextOrdinals: acceptedNoReplyDeliveryContextOrdinals,
|
|
3499
4180
|
finalAction,
|
|
3500
4181
|
finalActionExplicit: finalActionPatch?.kind === 'none' && !requiredUserVisibleOutput,
|
|
3501
4182
|
finalMessage,
|
|
3502
|
-
|
|
3503
|
-
|
|
4183
|
+
providerAuthoredFinalMessage: modelFinalMessage,
|
|
4184
|
+
transcriptMessage,
|
|
3504
4185
|
reactions: reactionPatches.map((entry) => ({
|
|
3505
4186
|
deliveryContextOrdinal: entry.deliveryContextOrdinal,
|
|
3506
4187
|
reaction: entry.patch.reaction,
|
|
@@ -3509,6 +4190,9 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
3509
4190
|
precedingAgentMessageSegments: filteredPrecedingAgentMessageSegments.map((segment) => ({
|
|
3510
4191
|
deliveryContextOrdinal: segment.deliveryContextOrdinal,
|
|
3511
4192
|
response: segment.response,
|
|
4193
|
+
...(segment.transcriptResponse === undefined
|
|
4194
|
+
? {}
|
|
4195
|
+
: { transcriptResponse: segment.transcriptResponse }),
|
|
3512
4196
|
media: [...segment.media],
|
|
3513
4197
|
...(segment.targetInputId
|
|
3514
4198
|
? { targetInputId: segment.targetInputId }
|
|
@@ -3518,6 +4202,7 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
3518
4202
|
targetInputId: resolveReplyTargetPatch(finalDeliveryContextOrdinal)?.targetInputId ?? null,
|
|
3519
4203
|
additionalUsages: [...additionalUsages, ...buildSubagentUsageDrafts()],
|
|
3520
4204
|
responseMedia: finalHasDeliverableOutput ? [...finalResponseMedia] : [],
|
|
4205
|
+
responseCard: finalHasDeliverableOutput ? deliveredFinalResponseCard : null,
|
|
3521
4206
|
jsonEvents,
|
|
3522
4207
|
providerActionCount,
|
|
3523
4208
|
runtimeIssueInputs,
|
|
@@ -3529,6 +4214,23 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
|
|
|
3529
4214
|
turnId,
|
|
3530
4215
|
};
|
|
3531
4216
|
}
|
|
4217
|
+
function mergeAutomationRelativeDateReferenceWindows(preceding, current) {
|
|
4218
|
+
if (current === null) {
|
|
4219
|
+
return null;
|
|
4220
|
+
}
|
|
4221
|
+
if (preceding === null) {
|
|
4222
|
+
return { ...current };
|
|
4223
|
+
}
|
|
4224
|
+
const earliestAtMs = Math.min(Date.parse(preceding.earliestAt), Date.parse(current.earliestAt));
|
|
4225
|
+
const latestAtMs = Math.max(Date.parse(preceding.latestAt), Date.parse(current.latestAt));
|
|
4226
|
+
if (!Number.isFinite(earliestAtMs) || !Number.isFinite(latestAtMs)) {
|
|
4227
|
+
return null;
|
|
4228
|
+
}
|
|
4229
|
+
return {
|
|
4230
|
+
earliestAt: new Date(earliestAtMs).toISOString(),
|
|
4231
|
+
latestAt: new Date(latestAtMs).toISOString(),
|
|
4232
|
+
};
|
|
4233
|
+
}
|
|
3532
4234
|
function assertCodexThreadStartPermissionAttestation(input) {
|
|
3533
4235
|
const result = asCodexRecord(input.threadResult);
|
|
3534
4236
|
const activePermissionProfile = asCodexRecord(result?.activePermissionProfile);
|
|
@@ -3553,7 +4255,8 @@ function assertCodexThreadStartPermissionAttestation(input) {
|
|
|
3553
4255
|
if (!actualCwd || path.resolve(actualCwd) !== input.input.workingDirectory) {
|
|
3554
4256
|
mismatchedFields.push('cwd');
|
|
3555
4257
|
}
|
|
3556
|
-
if (
|
|
4258
|
+
if (input.input.processLifetime === 'one-shot' &&
|
|
4259
|
+
(instructionSources === null || instructionSources.length !== 0)) {
|
|
3557
4260
|
mismatchedFields.push('instructionSources');
|
|
3558
4261
|
}
|
|
3559
4262
|
if (asCodexString(result?.approvalPolicy) !==
|
|
@@ -3563,7 +4266,7 @@ function assertCodexThreadStartPermissionAttestation(input) {
|
|
|
3563
4266
|
if (mismatchedFields.length === 0) {
|
|
3564
4267
|
return;
|
|
3565
4268
|
}
|
|
3566
|
-
throw new VaultCliError('ASSISTANT_CODEX_APP_SERVER_PERMISSION_ATTESTATION_FAILED', 'Codex app-server did not attest the requested
|
|
4269
|
+
throw new VaultCliError('ASSISTANT_CODEX_APP_SERVER_PERMISSION_ATTESTATION_FAILED', 'Codex app-server did not attest the requested named-permission execution context.', {
|
|
3567
4270
|
mismatchedFields,
|
|
3568
4271
|
retryable: false,
|
|
3569
4272
|
});
|
|
@@ -3588,6 +4291,36 @@ function emitCodexSuppressedFinalMessageTrace(input) {
|
|
|
3588
4291
|
// Diagnostic-only.
|
|
3589
4292
|
}
|
|
3590
4293
|
}
|
|
4294
|
+
function emitCodexGeneratedAudioPhaseTimingTrace(input) {
|
|
4295
|
+
if (!input.onTraceEvent) {
|
|
4296
|
+
return;
|
|
4297
|
+
}
|
|
4298
|
+
try {
|
|
4299
|
+
input.onTraceEvent({
|
|
4300
|
+
codexThreadId: input.codexThreadId,
|
|
4301
|
+
rawEvent: {
|
|
4302
|
+
schema: CODEX_GENERATED_AUDIO_PHASE_TIMING_TRACE_SCHEMA,
|
|
4303
|
+
type: CODEX_GENERATED_AUDIO_PHASE_TIMING_TRACE_TYPE,
|
|
4304
|
+
generatedAudioDeliveryMode: input.timing.deliveryMode,
|
|
4305
|
+
...(input.timing.generationDurationMs === undefined
|
|
4306
|
+
? {}
|
|
4307
|
+
: {
|
|
4308
|
+
generatedAudioGenerationDurationMs: input.timing.generationDurationMs,
|
|
4309
|
+
}),
|
|
4310
|
+
generatedAudioKind: input.timing.mediaKind,
|
|
4311
|
+
generatedAudioOutcome: input.timing.outcome,
|
|
4312
|
+
generatedAudioTerminalPhase: input.timing.terminalPhase,
|
|
4313
|
+
...(input.timing.uploadDurationMs === undefined
|
|
4314
|
+
? {}
|
|
4315
|
+
: { generatedAudioUploadDurationMs: input.timing.uploadDurationMs }),
|
|
4316
|
+
},
|
|
4317
|
+
updates: [],
|
|
4318
|
+
});
|
|
4319
|
+
}
|
|
4320
|
+
catch {
|
|
4321
|
+
// Phase timing is diagnostic-only and must not block assistant turns.
|
|
4322
|
+
}
|
|
4323
|
+
}
|
|
3591
4324
|
function notifyCodexAppServerProviderRequestStartedBestEffort(input) {
|
|
3592
4325
|
if (!input.hook) {
|
|
3593
4326
|
return;
|
|
@@ -3611,31 +4344,51 @@ function isInvalidDynamicToolRequest(request) {
|
|
|
3611
4344
|
request.kind === 'invalid-computer-arguments' ||
|
|
3612
4345
|
request.kind === 'invalid-device-arguments' ||
|
|
3613
4346
|
request.kind === 'invalid-generate-voice-memo-arguments' ||
|
|
4347
|
+
request.kind === 'invalid-pending-vault-files-arguments' ||
|
|
3614
4348
|
request.kind === 'invalid-finish-without-reply-arguments' ||
|
|
3615
4349
|
request.kind === 'invalid-progress-arguments' ||
|
|
3616
4350
|
request.kind === 'invalid-reaction-arguments' ||
|
|
3617
4351
|
request.kind === 'invalid-reply-target-arguments' ||
|
|
3618
4352
|
request.kind === 'invalid-product-feedback-arguments' ||
|
|
4353
|
+
request.kind === 'invalid-response-card-arguments' ||
|
|
3619
4354
|
request.kind === 'invalid-response-media-arguments');
|
|
3620
4355
|
}
|
|
3621
4356
|
function isSerializedDynamicToolRequest(request) {
|
|
3622
4357
|
return request.kind === 'automation' ||
|
|
4358
|
+
request.kind === 'automation-local-at-recovery-dismissal' ||
|
|
4359
|
+
request.kind === 'invalid-automation-arguments' ||
|
|
3623
4360
|
request.kind === 'device' ||
|
|
3624
4361
|
request.kind === 'generate-image' ||
|
|
3625
4362
|
request.kind === 'generate-voice-memo' ||
|
|
3626
4363
|
request.kind === 'generate-song' ||
|
|
4364
|
+
request.kind === 'attach-group-challenge-response-card' ||
|
|
4365
|
+
request.kind === 'attach-response-card' ||
|
|
4366
|
+
request.kind === 'response-card-envelope-too-large' ||
|
|
3627
4367
|
request.kind === 'attach-response-media' ||
|
|
3628
4368
|
request.kind === 'send-vault-file' ||
|
|
4369
|
+
request.kind === 'pending-vault-files-list' ||
|
|
4370
|
+
request.kind === 'pending-vault-files-cancel' ||
|
|
3629
4371
|
request.kind === 'assistant-configuration' ||
|
|
3630
4372
|
request.kind === 'assistant-style' ||
|
|
3631
4373
|
request.kind === 'personalization' ||
|
|
3632
4374
|
request.kind === 'subscription' ||
|
|
4375
|
+
(request.kind === 'group' &&
|
|
4376
|
+
request.request.action === 'ask_current_sender' &&
|
|
4377
|
+
request.request.mode !== 'new') ||
|
|
3633
4378
|
request.kind === 'react-to-message' ||
|
|
3634
4379
|
request.kind === 'select-reply-target' ||
|
|
3635
|
-
|
|
4380
|
+
request.kind === 'computer-open' ||
|
|
4381
|
+
request.kind === 'computer-act' ||
|
|
4382
|
+
request.kind === 'computer-os-control' ||
|
|
4383
|
+
request.kind === 'computer-pause-for-user' ||
|
|
4384
|
+
request.kind === 'computer-finish-run' ||
|
|
4385
|
+
request.kind === 'invalid-computer-arguments';
|
|
3636
4386
|
}
|
|
3637
|
-
function
|
|
3638
|
-
return request.kind === 'attach-response-
|
|
4387
|
+
function isResponseAttachmentDynamicToolRequest(request) {
|
|
4388
|
+
return request.kind === 'attach-group-challenge-response-card' ||
|
|
4389
|
+
request.kind === 'attach-response-card' ||
|
|
4390
|
+
request.kind === 'response-card-envelope-too-large' ||
|
|
4391
|
+
request.kind === 'attach-response-media' ||
|
|
3639
4392
|
request.kind === 'generate-image' ||
|
|
3640
4393
|
request.kind === 'generate-song' ||
|
|
3641
4394
|
request.kind === 'generate-voice-memo' ||
|
|
@@ -3643,9 +4396,13 @@ function isResponseMediaDynamicToolRequest(request) {
|
|
|
3643
4396
|
}
|
|
3644
4397
|
function isInvocationScopedRootToolRequest(request) {
|
|
3645
4398
|
return request.kind === 'automation' ||
|
|
4399
|
+
request.kind === 'automation-local-at-recovery-dismissal' ||
|
|
3646
4400
|
request.kind === 'invalid-automation-arguments' ||
|
|
3647
4401
|
request.kind === 'device' ||
|
|
3648
4402
|
request.kind === 'invalid-device-arguments' ||
|
|
4403
|
+
request.kind === 'pending-vault-files-list' ||
|
|
4404
|
+
request.kind === 'pending-vault-files-cancel' ||
|
|
4405
|
+
request.kind === 'invalid-pending-vault-files-arguments' ||
|
|
3649
4406
|
request.kind === 'react-to-message' ||
|
|
3650
4407
|
request.kind === 'select-reply-target' ||
|
|
3651
4408
|
request.kind === 'invalid-reaction-arguments' ||
|
|
@@ -3726,6 +4483,7 @@ function resolveCodexRolloutRelativePath(input) {
|
|
|
3726
4483
|
function assertCodexResumeContextMatches(input) {
|
|
3727
4484
|
const result = asCodexRecord(input.threadResult);
|
|
3728
4485
|
const actualCwd = normalizeNullableString(asCodexString(result?.cwd));
|
|
4486
|
+
const expectedPermissions = normalizeNullableString(input.input.permissions);
|
|
3729
4487
|
const checks = [
|
|
3730
4488
|
[
|
|
3731
4489
|
'threadId',
|
|
@@ -3745,13 +4503,30 @@ function assertCodexResumeContextMatches(input) {
|
|
|
3745
4503
|
],
|
|
3746
4504
|
[
|
|
3747
4505
|
'sandbox',
|
|
3748
|
-
|
|
4506
|
+
expectedPermissions
|
|
4507
|
+
? null
|
|
4508
|
+
: mapCodexAppServerSandboxMode(input.input.sandbox) ?? null,
|
|
3749
4509
|
readCodexResumeSandboxMode(result?.sandbox),
|
|
3750
4510
|
],
|
|
3751
4511
|
];
|
|
3752
4512
|
const mismatchedFields = checks
|
|
3753
4513
|
.filter(([, expected, actual]) => expected !== null && actual !== expected)
|
|
3754
4514
|
.map(([field]) => field);
|
|
4515
|
+
if (expectedPermissions) {
|
|
4516
|
+
const activePermissionProfile = asCodexRecord(result?.activePermissionProfile);
|
|
4517
|
+
const actualRoots = asCodexStringArray(result?.runtimeWorkspaceRoots);
|
|
4518
|
+
const expectedRoots = input.input.runtimeWorkspaceRoots ?? [];
|
|
4519
|
+
if (normalizeNullableString(asCodexString(activePermissionProfile?.id)) !==
|
|
4520
|
+
expectedPermissions ||
|
|
4521
|
+
normalizeNullableString(asCodexString(activePermissionProfile?.extends)) !== null) {
|
|
4522
|
+
mismatchedFields.push('activePermissionProfile');
|
|
4523
|
+
}
|
|
4524
|
+
if (!actualRoots ||
|
|
4525
|
+
actualRoots.length !== expectedRoots.length ||
|
|
4526
|
+
actualRoots.some((root, index) => path.resolve(root) !== path.resolve(expectedRoots[index] ?? ''))) {
|
|
4527
|
+
mismatchedFields.push('runtimeWorkspaceRoots');
|
|
4528
|
+
}
|
|
4529
|
+
}
|
|
3755
4530
|
if (mismatchedFields.length === 0) {
|
|
3756
4531
|
return;
|
|
3757
4532
|
}
|
|
@@ -3812,14 +4587,13 @@ function normalizeCodexRolloutRelativePath(value, codexThreadId) {
|
|
|
3812
4587
|
return value;
|
|
3813
4588
|
}
|
|
3814
4589
|
function extractCodexProviderActionKey(normalizedEvent, rawEvent) {
|
|
4590
|
+
if (isCodexProductFeedbackDynamicToolEvent(rawEvent)) {
|
|
4591
|
+
return null;
|
|
4592
|
+
}
|
|
3815
4593
|
if (normalizedEvent.kind === 'status_item') {
|
|
3816
|
-
if (normalizedEvent.itemType !== '
|
|
3817
|
-
normalizedEvent.itemType !== '
|
|
3818
|
-
normalizedEvent.itemType !== '
|
|
3819
|
-
return null;
|
|
3820
|
-
}
|
|
3821
|
-
if (normalizedEvent.itemType === 'dynamic.tool.call' &&
|
|
3822
|
-
isCodexProductFeedbackDynamicToolEvent(rawEvent)) {
|
|
4594
|
+
if (normalizedEvent.itemType !== 'commandExecution' &&
|
|
4595
|
+
normalizedEvent.itemType !== 'dynamicToolCall' &&
|
|
4596
|
+
normalizedEvent.itemType !== 'fileChange') {
|
|
3823
4597
|
return null;
|
|
3824
4598
|
}
|
|
3825
4599
|
return (normalizedEvent.itemId ??
|
|
@@ -3833,17 +4607,10 @@ function extractCodexProviderActionKey(normalizedEvent, rawEvent) {
|
|
|
3833
4607
|
providerActionFallbackKeyFromNormalized(normalizedEvent));
|
|
3834
4608
|
}
|
|
3835
4609
|
function isCodexProductFeedbackDynamicToolEvent(event) {
|
|
3836
|
-
const
|
|
3837
|
-
|
|
3838
|
-
|
|
3839
|
-
|
|
3840
|
-
readCodexRecordField(data, 'item');
|
|
3841
|
-
const itemType = readCodexStringField(item, 'type')
|
|
3842
|
-
?.replaceAll(/[._-]/gu, '')
|
|
3843
|
-
.toLowerCase();
|
|
3844
|
-
return (itemType === 'dynamictoolcall' &&
|
|
3845
|
-
readCodexStringField(item, 'namespace') === 'murph' &&
|
|
3846
|
-
readCodexStringField(item, 'tool') === 'submit_product_feedback');
|
|
4610
|
+
const item = readCodexRecord(readCodexRecord(event.params)?.item);
|
|
4611
|
+
return (item?.type === 'dynamicToolCall' &&
|
|
4612
|
+
item.namespace === 'murph' &&
|
|
4613
|
+
item.tool === 'submit_product_feedback');
|
|
3847
4614
|
}
|
|
3848
4615
|
function providerActionFallbackKeyFromNormalized(event) {
|
|
3849
4616
|
switch (event.kind) {
|