@vellumai/assistant 0.3.5 → 0.3.6
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/README.md +51 -0
- package/eslint.config.mjs +31 -0
- package/package.json +1 -1
- package/scripts/ipc/check-swift-decoder-drift.ts +4 -1
- package/scripts/ipc/generate-swift.ts +18 -2
- package/src/__tests__/__snapshots__/ipc-snapshot.test.ts.snap +338 -1
- package/src/__tests__/approval-conversation-turn.test.ts +214 -0
- package/src/__tests__/browser-manager.test.ts +1 -0
- package/src/__tests__/call-conversation-messages.test.ts +130 -0
- package/src/__tests__/call-orchestrator.test.ts +752 -271
- package/src/__tests__/call-pointer-messages.test.ts +148 -0
- package/src/__tests__/call-recovery.test.ts +3 -0
- package/src/__tests__/call-routes-http.test.ts +5 -0
- package/src/__tests__/call-store.test.ts +3 -0
- package/src/__tests__/channel-approval-routes.test.ts +1260 -85
- package/src/__tests__/channel-approval.test.ts +37 -0
- package/src/__tests__/channel-approvals.test.ts +4 -65
- package/src/__tests__/channel-guardian.test.ts +556 -0
- package/src/__tests__/channel-readiness-service.test.ts +74 -7
- package/src/__tests__/checker.test.ts +14 -7
- package/src/__tests__/clarification-resolver.test.ts +44 -24
- package/src/__tests__/commit-message-enrichment-service.test.ts +9 -4
- package/src/__tests__/computer-use-session-working-dir.test.ts +8 -0
- package/src/__tests__/config-schema.test.ts +12 -7
- package/src/__tests__/context-window-manager.test.ts +30 -2
- package/src/__tests__/contradiction-checker.test.ts +20 -5
- package/src/__tests__/credential-security-invariants.test.ts +6 -2
- package/src/__tests__/db-migration-rollback.test.ts +752 -0
- package/src/__tests__/dynamic-skill-workflow-prompt.test.ts +2 -0
- package/src/__tests__/fuzzy-match-property.test.ts +5 -5
- package/src/__tests__/guardian-action-store.test.ts +123 -0
- package/src/__tests__/guardian-action-sweep.test.ts +277 -0
- package/src/__tests__/guardian-dispatch.test.ts +389 -0
- package/src/__tests__/guardian-question-copy.test.ts +47 -0
- package/src/__tests__/handlers-telegram-config.test.ts +4 -2
- package/src/__tests__/handlers-twilio-config.test.ts +126 -0
- package/src/__tests__/intent-routing.test.ts +2 -0
- package/src/__tests__/ipc-snapshot.test.ts +228 -1
- package/src/__tests__/memory-upsert-concurrency.test.ts +828 -0
- package/src/__tests__/model-intents.test.ts +96 -0
- package/src/__tests__/no-direct-anthropic-sdk-imports.test.ts +42 -0
- package/src/__tests__/oauth2-gateway-transport.test.ts +130 -0
- package/src/__tests__/onboarding-starter-tasks.test.ts +2 -0
- package/src/__tests__/provider-commit-message-generator.test.ts +89 -13
- package/src/__tests__/provider-error-scenarios.test.ts +621 -0
- package/src/__tests__/provider-fail-open-selection.test.ts +119 -0
- package/src/__tests__/qdrant-manager.test.ts +27 -20
- package/src/__tests__/relay-server.test.ts +779 -40
- package/src/__tests__/run-orchestrator-assistant-events.test.ts +2 -0
- package/src/__tests__/run-orchestrator.test.ts +20 -4
- package/src/__tests__/runtime-runs-http.test.ts +17 -1
- package/src/__tests__/runtime-runs.test.ts +16 -0
- package/src/__tests__/schedule-store.test.ts +18 -4
- package/src/__tests__/scheduler-recurrence.test.ts +13 -4
- package/src/__tests__/session-abort-tool-results.test.ts +6 -0
- package/src/__tests__/session-agent-loop.test.ts +857 -0
- package/src/__tests__/session-conflict-gate.test.ts +6 -0
- package/src/__tests__/session-pre-run-repair.test.ts +6 -0
- package/src/__tests__/session-profile-injection.test.ts +6 -0
- package/src/__tests__/session-provider-retry-repair.test.ts +6 -0
- package/src/__tests__/session-queue.test.ts +6 -0
- package/src/__tests__/session-runtime-assembly.test.ts +237 -13
- package/src/__tests__/session-slash-known.test.ts +6 -0
- package/src/__tests__/session-slash-queue.test.ts +6 -0
- package/src/__tests__/session-slash-unknown.test.ts +6 -0
- package/src/__tests__/session-surfaces-task-progress.test.ts +2 -0
- package/src/__tests__/session-tool-setup-app-refresh.test.ts +1 -0
- package/src/__tests__/session-tool-setup-memory-scope.test.ts +1 -0
- package/src/__tests__/session-tool-setup-side-effect-flag.test.ts +1 -0
- package/src/__tests__/session-workspace-injection.test.ts +6 -0
- package/src/__tests__/session-workspace-tool-tracking.test.ts +6 -0
- package/src/__tests__/skills.test.ts +2 -0
- package/src/__tests__/sms-messaging-provider.test.ts +2 -1
- package/src/__tests__/starter-task-flow.test.ts +2 -0
- package/src/__tests__/swarm-dag-pathological.test.ts +535 -0
- package/src/__tests__/system-prompt.test.ts +2 -0
- package/src/__tests__/task-management-tools.test.ts +2 -2
- package/src/__tests__/task-runner.test.ts +14 -4
- package/src/__tests__/terminal-tools.test.ts +25 -19
- package/src/__tests__/tool-execution-abort-cleanup.test.ts +545 -0
- package/src/__tests__/tool-executor-shell-integration.test.ts +11 -11
- package/src/__tests__/tool-executor.test.ts +23 -24
- package/src/__tests__/trust-store.test.ts +3 -3
- package/src/__tests__/twilio-rest.test.ts +29 -0
- package/src/__tests__/twilio-routes-elevenlabs.test.ts +3 -0
- package/src/__tests__/twilio-routes-twiml.test.ts +11 -0
- package/src/__tests__/twilio-routes.test.ts +141 -21
- package/src/__tests__/user-reference.test.ts +2 -0
- package/src/__tests__/voice-quality.test.ts +222 -0
- package/src/__tests__/web-search.test.ts +45 -29
- package/src/agent/loop.ts +1 -1
- package/src/agent-heartbeat/agent-heartbeat-service.ts +2 -10
- package/src/amazon/client.ts +1418 -0
- package/src/amazon/request-extractor.ts +135 -0
- package/src/amazon/session.ts +109 -0
- package/src/autonomy/autonomy-store.ts +5 -5
- package/src/browser-extension-relay/client.ts +124 -0
- package/src/browser-extension-relay/protocol.ts +63 -0
- package/src/browser-extension-relay/server.ts +177 -0
- package/src/bundler/app-bundler.ts +3 -3
- package/src/bundler/bundle-signer.ts +1 -1
- package/src/bundler/signature-verifier.ts +1 -1
- package/src/calls/call-conversation-messages.ts +33 -0
- package/src/calls/call-domain.ts +106 -5
- package/src/calls/call-orchestrator.ts +252 -54
- package/src/calls/call-pointer-messages.ts +53 -0
- package/src/calls/call-recovery.ts +3 -8
- package/src/calls/call-store.ts +69 -87
- package/src/calls/elevenlabs-config.ts +3 -2
- package/src/calls/guardian-action-sweep.ts +105 -0
- package/src/calls/guardian-dispatch.ts +203 -0
- package/src/calls/guardian-question-copy.ts +133 -0
- package/src/calls/relay-server.ts +466 -8
- package/src/calls/speaker-identification.ts +1 -1
- package/src/calls/twilio-config.ts +7 -5
- package/src/calls/twilio-provider.ts +6 -4
- package/src/calls/twilio-rest.ts +40 -15
- package/src/calls/twilio-routes.ts +60 -45
- package/src/calls/types.ts +3 -1
- package/src/channels/types.ts +25 -0
- package/src/cli/amazon.ts +815 -0
- package/src/cli/config-commands.ts +2 -2
- package/src/cli/core-commands.ts +4 -3
- package/src/cli/influencer.ts +244 -0
- package/src/cli/map.ts +89 -6
- package/src/cli.ts +1 -1
- package/src/config/agent-schema.ts +171 -0
- package/src/config/bundled-skills/amazon/SKILL.md +127 -0
- package/src/config/bundled-skills/amazon/icon.svg +13 -0
- package/src/config/bundled-skills/api-mapping/SKILL.md +78 -0
- package/src/config/bundled-skills/browser/SKILL.md +1 -0
- package/src/config/bundled-skills/browser/TOOLS.json +17 -0
- package/src/config/bundled-skills/browser/tools/browser-wait-for-download.ts +25 -0
- package/src/config/bundled-skills/doordash/SKILL.md +51 -51
- package/src/config/bundled-skills/email-setup/SKILL.md +14 -5
- package/src/config/bundled-skills/google-oauth-setup/SKILL.md +183 -0
- package/src/config/bundled-skills/influencer/SKILL.md +144 -0
- package/src/config/bundled-skills/macos-automation/icon.svg +12 -0
- package/src/config/bundled-skills/media-processing/SKILL.md +72 -95
- package/src/config/bundled-skills/media-processing/TOOLS.json +57 -147
- package/src/config/bundled-skills/media-processing/__tests__/concurrency-pool.test.ts +77 -0
- package/src/config/bundled-skills/media-processing/__tests__/cost-tracker.test.ts +69 -0
- package/src/config/bundled-skills/media-processing/__tests__/preprocess.test.ts +303 -0
- package/src/config/bundled-skills/media-processing/services/concurrency-pool.ts +55 -0
- package/src/config/bundled-skills/media-processing/services/cost-tracker.ts +86 -0
- package/src/config/bundled-skills/media-processing/services/gemini-map.ts +339 -0
- package/src/config/bundled-skills/media-processing/services/preprocess.ts +551 -0
- package/src/config/bundled-skills/media-processing/services/processing-pipeline.ts +7 -9
- package/src/config/bundled-skills/media-processing/services/reduce.ts +197 -0
- package/src/config/bundled-skills/media-processing/tools/analyze-keyframes.ts +88 -253
- package/src/config/bundled-skills/media-processing/tools/extract-keyframes.ts +22 -153
- package/src/config/bundled-skills/media-processing/tools/generate-clip.ts +2 -2
- package/src/config/bundled-skills/media-processing/tools/media-diagnostics.ts +28 -51
- package/src/config/bundled-skills/media-processing/tools/query-media-events.ts +35 -270
- package/src/config/bundled-skills/messaging/SKILL.md +12 -2
- package/src/config/bundled-skills/messaging/tools/messaging-analyze-style.ts +4 -7
- package/src/config/bundled-skills/messaging/tools/messaging-reply.ts +2 -1
- package/src/config/bundled-skills/phone-calls/SKILL.md +86 -21
- package/src/config/bundled-skills/twitter/icon.svg +14 -0
- package/src/config/bundled-tool-registry.ts +310 -0
- package/src/config/calls-schema.ts +181 -0
- package/src/config/core-schema.ts +309 -0
- package/src/config/defaults.ts +26 -2
- package/src/config/env-registry.ts +162 -0
- package/src/config/env.ts +175 -0
- package/src/config/loader.ts +6 -6
- package/src/config/memory-schema.ts +528 -0
- package/src/config/sandbox-schema.ts +55 -0
- package/src/config/schema.ts +156 -1137
- package/src/config/skill-state.ts +1 -1
- package/src/config/skills-schema.ts +32 -0
- package/src/config/skills.ts +35 -24
- package/src/config/system-prompt.ts +107 -56
- package/src/config/templates/SOUL.md +1 -1
- package/src/config/types.ts +1 -0
- package/src/config/user-reference.ts +4 -9
- package/src/config/vellum-skills/catalog.json +0 -7
- package/src/config/vellum-skills/chatgpt-import/tools/chatgpt-import.ts +5 -1
- package/src/config/vellum-skills/slack-oauth-setup/SKILL.md +1 -0
- package/src/config/vellum-skills/sms-setup/SKILL.md +112 -14
- package/src/context/window-manager.ts +27 -7
- package/src/daemon/approval-generators.ts +186 -0
- package/src/daemon/approved-devices-store.ts +140 -0
- package/src/daemon/assistant-attachments.ts +1 -1
- package/src/daemon/classifier.ts +35 -32
- package/src/daemon/config-watcher.ts +1 -1
- package/src/daemon/daemon-control.ts +217 -0
- package/src/daemon/handlers/apps.ts +2 -3
- package/src/daemon/handlers/config-channels.ts +158 -0
- package/src/daemon/handlers/config-inbox.ts +540 -0
- package/src/daemon/handlers/config-ingress.ts +231 -0
- package/src/daemon/handlers/config-integrations.ts +258 -0
- package/src/daemon/handlers/config-model.ts +143 -0
- package/src/daemon/handlers/config-parental.ts +163 -0
- package/src/daemon/handlers/config-scheduling.ts +172 -0
- package/src/daemon/handlers/config-slack.ts +92 -0
- package/src/daemon/handlers/config-telegram.ts +301 -0
- package/src/daemon/handlers/config-tools.ts +177 -0
- package/src/daemon/handlers/config-trust.ts +104 -0
- package/src/daemon/handlers/config-twilio.ts +1080 -0
- package/src/daemon/handlers/config.ts +53 -2463
- package/src/daemon/handlers/diagnostics.ts +1 -1
- package/src/daemon/handlers/dictation.ts +4 -6
- package/src/daemon/handlers/documents.ts +18 -32
- package/src/daemon/handlers/index.ts +9 -0
- package/src/daemon/handlers/misc.ts +3 -5
- package/src/daemon/handlers/pairing.ts +98 -0
- package/src/daemon/handlers/sessions.ts +54 -5
- package/src/daemon/handlers/shared.ts +3 -1
- package/src/daemon/handlers/skills.ts +1 -1
- package/src/daemon/handlers/twitter-auth.ts +2 -0
- package/src/daemon/handlers/work-items.ts +2 -2
- package/src/daemon/handlers/workspace-files.ts +4 -3
- package/src/daemon/install-cli-launchers.ts +113 -0
- package/src/daemon/ipc-contract/apps.ts +356 -0
- package/src/daemon/ipc-contract/browser.ts +74 -0
- package/src/daemon/ipc-contract/computer-use.ts +151 -0
- package/src/daemon/ipc-contract/diagnostics.ts +56 -0
- package/src/daemon/ipc-contract/documents.ts +74 -0
- package/src/daemon/ipc-contract/inbox.ts +209 -0
- package/src/daemon/ipc-contract/integrations.ts +284 -0
- package/src/daemon/ipc-contract/memory.ts +48 -0
- package/src/daemon/ipc-contract/messages.ts +211 -0
- package/src/daemon/ipc-contract/pairing.ts +45 -0
- package/src/daemon/ipc-contract/parental-control.ts +95 -0
- package/src/daemon/ipc-contract/schedules.ts +97 -0
- package/src/daemon/ipc-contract/sessions.ts +315 -0
- package/src/daemon/ipc-contract/shared.ts +42 -0
- package/src/daemon/ipc-contract/skills.ts +120 -0
- package/src/daemon/ipc-contract/subagents.ts +58 -0
- package/src/daemon/ipc-contract/surfaces.ts +250 -0
- package/src/daemon/ipc-contract/trust.ts +60 -0
- package/src/daemon/ipc-contract/work-items.ts +225 -0
- package/src/daemon/ipc-contract/workspace.ts +113 -0
- package/src/daemon/ipc-contract-inventory.json +60 -0
- package/src/daemon/ipc-contract-inventory.ts +55 -29
- package/src/daemon/ipc-contract.ts +226 -2527
- package/src/daemon/ipc-protocol.ts +1 -1
- package/src/daemon/ipc-validate.ts +7 -0
- package/src/daemon/lifecycle.ts +97 -379
- package/src/daemon/pairing-store.ts +177 -0
- package/src/daemon/providers-setup.ts +43 -0
- package/src/daemon/ride-shotgun-handler.ts +67 -2
- package/src/daemon/server.ts +60 -44
- package/src/daemon/session-agent-loop-handlers.ts +421 -0
- package/src/daemon/session-agent-loop.ts +113 -275
- package/src/daemon/session-dynamic-profile.ts +1 -1
- package/src/daemon/session-history.ts +1 -1
- package/src/daemon/session-media-retry.ts +1 -1
- package/src/daemon/session-messaging.ts +37 -2
- package/src/daemon/session-notifiers.ts +5 -25
- package/src/daemon/session-process.ts +99 -59
- package/src/daemon/session-queue-manager.ts +96 -4
- package/src/daemon/session-runtime-assembly.ts +149 -15
- package/src/daemon/session-surfaces.ts +19 -4
- package/src/daemon/session-tool-setup.ts +28 -30
- package/src/daemon/session-workspace.ts +1 -1
- package/src/daemon/session.ts +24 -1
- package/src/daemon/shutdown-handlers.ts +122 -0
- package/src/daemon/trace-emitter.ts +1 -1
- package/src/daemon/watch-handler.ts +36 -33
- package/src/doordash/cart-queries.ts +787 -0
- package/src/doordash/client.ts +144 -127
- package/src/doordash/order-queries.ts +85 -0
- package/src/doordash/queries.ts +10 -1308
- package/src/doordash/search-queries.ts +203 -0
- package/src/doordash/session.ts +3 -2
- package/src/doordash/store-queries.ts +246 -0
- package/src/doordash/types.ts +367 -0
- package/src/email/providers/agentmail.ts +2 -1
- package/src/email/providers/index.ts +3 -2
- package/src/email/service.ts +3 -2
- package/src/errors.ts +43 -0
- package/src/home-base/prebuilt/seed.ts +1 -1
- package/src/hooks/cli.ts +6 -5
- package/src/hooks/config.ts +6 -8
- package/src/hooks/discovery.ts +6 -5
- package/src/hooks/manager.ts +4 -3
- package/src/hooks/runner.ts +2 -2
- package/src/hooks/templates.ts +5 -5
- package/src/inbound/public-ingress-urls.ts +3 -1
- package/src/index.ts +4 -2
- package/src/influencer/client.ts +1104 -0
- package/src/instrument.ts +4 -3
- package/src/logfire.ts +4 -3
- package/src/memory/admin.ts +25 -35
- package/src/memory/attachments-store.ts +4 -7
- package/src/memory/channel-delivery-store.ts +30 -1
- package/src/memory/channel-guardian-store.ts +200 -1
- package/src/memory/clarification-resolver.ts +37 -33
- package/src/memory/conflict-store.ts +67 -61
- package/src/memory/contradiction-checker.ts +141 -117
- package/src/memory/conversation-store.ts +335 -51
- package/src/memory/db-connection.ts +27 -4
- package/src/memory/db-init.ts +121 -4
- package/src/memory/db.ts +14 -1
- package/src/memory/embedding-backend.ts +27 -5
- package/src/memory/embedding-ollama.ts +2 -1
- package/src/memory/entity-extractor.ts +38 -35
- package/src/memory/guardian-action-store.ts +430 -0
- package/src/memory/inbox-escalation-projection.ts +59 -0
- package/src/memory/inbox-thread-store.ts +218 -0
- package/src/memory/ingress-invite-store.ts +338 -0
- package/src/memory/ingress-member-store.ts +350 -0
- package/src/memory/items-extractor.ts +91 -97
- package/src/memory/job-handlers/index-maintenance.ts +3 -3
- package/src/memory/job-handlers/media-processing.ts +11 -42
- package/src/memory/job-handlers/summarization.ts +32 -26
- package/src/memory/job-utils.ts +3 -10
- package/src/memory/jobs-store.ts +6 -9
- package/src/memory/jobs-worker.ts +51 -36
- package/src/memory/migrations/001-job-deferrals.ts +45 -0
- package/src/memory/migrations/002-tool-invocations-fk.ts +43 -0
- package/src/memory/migrations/003-memory-fts-backfill.ts +24 -0
- package/src/memory/migrations/004-entity-relation-dedup.ts +87 -0
- package/src/memory/migrations/005-fingerprint-scope-unique.ts +80 -0
- package/src/memory/migrations/006-scope-salted-fingerprints.ts +62 -0
- package/src/memory/migrations/007-assistant-id-to-self.ts +254 -0
- package/src/memory/migrations/008-remove-assistant-id-columns.ts +208 -0
- package/src/memory/migrations/009-llm-usage-events-drop-assistant-id.ts +83 -0
- package/src/memory/migrations/010-ext-conv-bindings-channel-chat-unique.ts +56 -0
- package/src/memory/migrations/011-call-sessions-provider-sid-dedup.ts +63 -0
- package/src/memory/migrations/012-call-sessions-add-initiated-from.ts +19 -0
- package/src/memory/migrations/013-guardian-action-tables.ts +68 -0
- package/src/memory/migrations/014-backfill-inbox-thread-state.ts +76 -0
- package/src/memory/migrations/015-drop-active-search-index.ts +27 -0
- package/src/memory/migrations/016-memory-segments-indexes.ts +11 -0
- package/src/memory/migrations/017-memory-items-indexes.ts +10 -0
- package/src/memory/migrations/018-remaining-table-indexes.ts +13 -0
- package/src/memory/migrations/index.ts +24 -0
- package/src/memory/migrations/registry.ts +79 -0
- package/src/memory/migrations/validate-migration-state.ts +69 -0
- package/src/memory/qdrant-manager.ts +49 -8
- package/src/memory/query-builder.ts +1 -1
- package/src/memory/raw-query.ts +119 -0
- package/src/memory/recall-cache.ts +4 -1
- package/src/memory/retriever.ts +160 -47
- package/src/memory/schema-migration.ts +25 -984
- package/src/memory/schema.ts +130 -7
- package/src/memory/search/entity.ts +10 -19
- package/src/memory/search/lexical.ts +81 -52
- package/src/memory/search/ranking.ts +21 -22
- package/src/memory/search/semantic.ts +157 -19
- package/src/memory/shared-app-links-store.ts +4 -5
- package/src/memory/validation.ts +19 -0
- package/src/messaging/draft-store.ts +5 -6
- package/src/messaging/providers/sms/adapter.ts +3 -6
- package/src/messaging/providers/telegram-bot/adapter.ts +2 -5
- package/src/messaging/providers/whatsapp/adapter.ts +136 -0
- package/src/messaging/providers/whatsapp/client.ts +67 -0
- package/src/messaging/style-analyzer.ts +5 -4
- package/src/messaging/thread-summarizer.ts +61 -69
- package/src/messaging/triage-engine.ts +62 -71
- package/src/migrations/config-merge.ts +53 -0
- package/src/migrations/data-layout.ts +68 -0
- package/src/migrations/data-merge.ts +33 -0
- package/src/migrations/hooks-merge.ts +90 -0
- package/src/migrations/index.ts +6 -0
- package/src/migrations/log.ts +23 -0
- package/src/migrations/skills-merge.ts +33 -0
- package/src/migrations/workspace-layout.ts +79 -0
- package/src/permissions/checker.ts +119 -11
- package/src/permissions/prompter.ts +14 -0
- package/src/permissions/shell-identity.ts +31 -1
- package/src/permissions/trust-store.ts +21 -1
- package/src/providers/anthropic/client.ts +4 -4
- package/src/providers/failover.ts +2 -2
- package/src/providers/model-intents.ts +70 -0
- package/src/providers/ollama/client.ts +2 -1
- package/src/providers/provider-send-message.ts +176 -0
- package/src/providers/registry.ts +71 -30
- package/src/providers/retry.ts +35 -1
- package/src/providers/types.ts +12 -1
- package/src/runtime/approval-conversation-turn.ts +97 -0
- package/src/runtime/approval-message-composer.ts +115 -5
- package/src/runtime/channel-approval-parser.ts +36 -2
- package/src/runtime/channel-approvals.ts +0 -21
- package/src/runtime/channel-guardian-service.ts +48 -7
- package/src/runtime/channel-readiness-service.ts +160 -34
- package/src/runtime/channel-readiness-types.ts +10 -4
- package/src/runtime/channel-retry-sweep.ts +184 -0
- package/src/runtime/guardian-context-resolver.ts +108 -0
- package/src/runtime/http-server.ts +275 -743
- package/src/runtime/http-types.ts +56 -3
- package/src/runtime/middleware/auth.ts +116 -0
- package/src/runtime/middleware/error-handler.ts +33 -0
- package/src/runtime/middleware/twilio-validation.ts +127 -0
- package/src/runtime/routes/app-routes.ts +1 -1
- package/src/runtime/routes/call-routes.ts +49 -6
- package/src/runtime/routes/channel-delivery-routes.ts +170 -0
- package/src/runtime/routes/channel-guardian-routes.ts +1191 -0
- package/src/runtime/routes/channel-inbound-routes.ts +1152 -0
- package/src/runtime/routes/channel-route-shared.ts +144 -0
- package/src/runtime/routes/channel-routes.ts +32 -1634
- package/src/runtime/routes/conversation-routes.ts +50 -7
- package/src/runtime/routes/events-routes.ts +2 -2
- package/src/runtime/routes/identity-routes.ts +126 -0
- package/src/runtime/routes/pairing-routes.ts +143 -0
- package/src/runtime/routes/run-routes.ts +15 -1
- package/src/runtime/run-orchestrator.ts +52 -34
- package/src/schedule/schedule-store.ts +36 -32
- package/src/schedule/scheduler.ts +3 -3
- package/src/security/encrypted-store.ts +5 -7
- package/src/security/oauth2.ts +45 -15
- package/src/security/parental-control-store.ts +183 -0
- package/src/security/secret-allowlist.ts +4 -3
- package/src/security/secret-scanner.ts +5 -5
- package/src/security/secure-keys.ts +1 -1
- package/src/security/token-manager.ts +3 -2
- package/src/services/vercel-deploy.ts +6 -2
- package/src/skills/tool-manifest.ts +3 -3
- package/src/skills/vellum-catalog-remote.ts +75 -16
- package/src/slack/slack-webhook.ts +2 -1
- package/src/swarm/orchestrator.ts +92 -1
- package/src/swarm/router-planner.ts +6 -9
- package/src/swarm/worker-prompts.ts +9 -12
- package/src/tasks/task-compiler.ts +19 -28
- package/src/tasks/task-runner.ts +1 -1
- package/src/tools/assets/search.ts +15 -14
- package/src/tools/browser/__tests__/auth-detector.test.ts +1 -0
- package/src/tools/browser/auto-navigate.ts +1 -0
- package/src/tools/browser/browser-execution.ts +10 -1
- package/src/tools/browser/browser-manager.ts +119 -4
- package/src/tools/browser/network-recorder.ts +5 -0
- package/src/tools/credentials/broker.ts +11 -2
- package/src/tools/credentials/metadata-store.ts +18 -14
- package/src/tools/credentials/post-connect-hooks.ts +61 -0
- package/src/tools/credentials/vault.ts +49 -23
- package/src/tools/executor.ts +68 -9
- package/src/tools/host-terminal/cli-discover.ts +1 -1
- package/src/tools/network/script-proxy/http-forwarder.ts +1 -1
- package/src/tools/network/script-proxy/mitm-handler.ts +1 -1
- package/src/tools/network/script-proxy/server.ts +1 -1
- package/src/tools/network/script-proxy/session-manager.ts +6 -5
- package/src/tools/network/web-fetch.ts +18 -2
- package/src/tools/network/web-search.ts +7 -3
- package/src/tools/reminder/reminder-store.ts +14 -15
- package/src/tools/schedule/create.ts +1 -0
- package/src/tools/schedule/list.ts +2 -1
- package/src/tools/shared/filesystem/file-ops-service.ts +5 -7
- package/src/tools/skills/skill-script-runner.ts +24 -9
- package/src/tools/skills/skill-tool-factory.ts +1 -0
- package/src/tools/tasks/work-item-enqueue.ts +2 -2
- package/src/tools/terminal/evaluate-typescript.ts +21 -12
- package/src/tools/terminal/parser.ts +50 -0
- package/src/tools/watcher/delete.ts +6 -0
- package/src/tools/weather/service.ts +1 -1
- package/src/twitter/client.ts +190 -24
- package/src/twitter/session.ts +4 -3
- package/src/util/clipboard.ts +1 -1
- package/src/util/errors.ts +65 -8
- package/src/util/fs.ts +40 -0
- package/src/util/json.ts +10 -0
- package/src/util/log-redact.ts +189 -0
- package/src/util/logger.ts +19 -17
- package/src/util/object.ts +3 -0
- package/src/util/platform.ts +72 -365
- package/src/util/pricing.ts +1 -1
- package/src/util/promise-guard.ts +1 -1
- package/src/util/retry.ts +19 -0
- package/src/util/row-mapper.ts +79 -0
- package/src/util/silently.ts +21 -0
- package/src/watcher/engine.ts +5 -1
- package/src/watcher/provider-types.ts +20 -0
- package/src/watcher/providers/github.ts +156 -0
- package/src/watcher/providers/gmail.ts +1 -0
- package/src/watcher/providers/google-calendar.ts +1 -0
- package/src/watcher/providers/linear.ts +460 -0
- package/src/watcher/providers/slack.ts +1 -0
- package/src/work-items/work-item-runner.ts +1 -1
- package/src/workspace/git-service.ts +1 -1
- package/src/workspace/provider-commit-message-generator.ts +51 -22
- package/src/__tests__/call-bridge.test.ts +0 -517
- package/src/__tests__/session-process-bridge.test.ts +0 -244
- package/src/calls/call-bridge.ts +0 -168
- package/src/config/bundled-skills/media-processing/services/capability-registry.ts +0 -137
- package/src/config/bundled-skills/media-processing/services/event-detection-service.ts +0 -280
- package/src/config/bundled-skills/media-processing/services/feedback-aggregation.ts +0 -144
- package/src/config/bundled-skills/media-processing/services/feedback-store.ts +0 -136
- package/src/config/bundled-skills/media-processing/services/retrieval-service.ts +0 -95
- package/src/config/bundled-skills/media-processing/services/timeline-service.ts +0 -267
- package/src/config/bundled-skills/media-processing/tools/detect-events.ts +0 -110
- package/src/config/bundled-skills/media-processing/tools/recalibrate.ts +0 -235
- package/src/config/bundled-skills/media-processing/tools/select-tracking-profile.ts +0 -142
- package/src/config/bundled-skills/media-processing/tools/submit-feedback.ts +0 -150
- package/src/config/vellum-skills/google-oauth-setup/SKILL.md +0 -199
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GraphQL queries for DoorDash search and homepage discovery.
|
|
3
|
+
* Each query is fully self-contained with all required fragment definitions.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
// ---------------------------------------------------------------------------
|
|
7
|
+
// SEARCH_QUERY
|
|
8
|
+
// ---------------------------------------------------------------------------
|
|
9
|
+
|
|
10
|
+
export const SEARCH_QUERY = `
|
|
11
|
+
query autocompleteFacetFeed($query: String!, $serializedBundleGlobalSearchContext: String) {
|
|
12
|
+
autocompleteFacetFeed(
|
|
13
|
+
query: $query
|
|
14
|
+
serializedBundleGlobalSearchContext: $serializedBundleGlobalSearchContext
|
|
15
|
+
) {
|
|
16
|
+
...FacetFeedV2ResultFragment
|
|
17
|
+
__typename
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
fragment FacetFeedV2ResultFragment on FacetFeedV2Result {
|
|
22
|
+
body {
|
|
23
|
+
id
|
|
24
|
+
header { ...FacetV2Fragment __typename }
|
|
25
|
+
body { ...FacetV2Fragment __typename }
|
|
26
|
+
layout { omitFooter __typename }
|
|
27
|
+
__typename
|
|
28
|
+
}
|
|
29
|
+
page { ...FacetV2PageFragment __typename }
|
|
30
|
+
header { ...FacetV2Fragment __typename }
|
|
31
|
+
footer { ...FacetV2Fragment __typename }
|
|
32
|
+
custom logging __typename
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
fragment FacetV2Fragment on FacetV2 {
|
|
36
|
+
...FacetV2BaseFragment
|
|
37
|
+
childrenMap { ...FacetV2BaseFragment __typename }
|
|
38
|
+
__typename
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
fragment FacetV2BaseFragment on FacetV2 {
|
|
42
|
+
id childrenCount
|
|
43
|
+
component { id category __typename }
|
|
44
|
+
name
|
|
45
|
+
text {
|
|
46
|
+
title
|
|
47
|
+
titleTextAttributes { textStyle textColor __typename }
|
|
48
|
+
subtitle
|
|
49
|
+
subtitleTextAttributes { textStyle textColor __typename }
|
|
50
|
+
accessory
|
|
51
|
+
accessoryTextAttributes { textStyle textColor __typename }
|
|
52
|
+
description
|
|
53
|
+
descriptionTextAttributes { textStyle textColor __typename }
|
|
54
|
+
custom { key value __typename }
|
|
55
|
+
__typename
|
|
56
|
+
}
|
|
57
|
+
images {
|
|
58
|
+
main { ...FacetV2ImageFragment __typename }
|
|
59
|
+
icon { ...FacetV2ImageFragment __typename }
|
|
60
|
+
background { ...FacetV2ImageFragment __typename }
|
|
61
|
+
accessory { ...FacetV2ImageFragment __typename }
|
|
62
|
+
custom { key value { ...FacetV2ImageFragment __typename } __typename }
|
|
63
|
+
__typename
|
|
64
|
+
}
|
|
65
|
+
events { click { name data __typename } __typename }
|
|
66
|
+
style {
|
|
67
|
+
spacing background_color
|
|
68
|
+
border { color width style __typename }
|
|
69
|
+
sizeClass dlsType __typename
|
|
70
|
+
}
|
|
71
|
+
layout {
|
|
72
|
+
omitFooter
|
|
73
|
+
gridSpecs {
|
|
74
|
+
Mobile { ...FacetV2LayoutGridFragment __typename }
|
|
75
|
+
Phablet { ...FacetV2LayoutGridFragment __typename }
|
|
76
|
+
Tablet { ...FacetV2LayoutGridFragment __typename }
|
|
77
|
+
Desktop { ...FacetV2LayoutGridFragment __typename }
|
|
78
|
+
WideScreen { ...FacetV2LayoutGridFragment __typename }
|
|
79
|
+
UltraWideScreen { ...FacetV2LayoutGridFragment __typename }
|
|
80
|
+
__typename
|
|
81
|
+
}
|
|
82
|
+
dlsPadding { top right bottom left __typename }
|
|
83
|
+
__typename
|
|
84
|
+
}
|
|
85
|
+
custom logging __typename
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
fragment FacetV2ImageFragment on FacetV2Image {
|
|
89
|
+
uri videoUri placeholder local style logging
|
|
90
|
+
events { click { name data __typename } __typename }
|
|
91
|
+
__typename
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
fragment FacetV2LayoutGridFragment on FacetV2LayoutGrid {
|
|
95
|
+
interRowSpacing interColumnSpacing minDimensionCount __typename
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
fragment FacetV2PageFragment on FacetV2Page {
|
|
99
|
+
next { name data __typename }
|
|
100
|
+
onLoad { name data __typename }
|
|
101
|
+
__typename
|
|
102
|
+
}`;
|
|
103
|
+
|
|
104
|
+
// ---------------------------------------------------------------------------
|
|
105
|
+
// HOME_PAGE_QUERY
|
|
106
|
+
// ---------------------------------------------------------------------------
|
|
107
|
+
|
|
108
|
+
export const HOME_PAGE_QUERY = `
|
|
109
|
+
query homePageFacetFeed($cursor: String, $filterQuery: String, $displayHeader: Boolean, $isDebug: Boolean, $cuisineFilterVerticalIds: String) {
|
|
110
|
+
homePageFacetFeed(
|
|
111
|
+
cursor: $cursor
|
|
112
|
+
filterQuery: $filterQuery
|
|
113
|
+
displayHeader: $displayHeader
|
|
114
|
+
isDebug: $isDebug
|
|
115
|
+
cuisineFilterVerticalIds: $cuisineFilterVerticalIds
|
|
116
|
+
) {
|
|
117
|
+
...FacetFeedV2ResultFragment
|
|
118
|
+
__typename
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
fragment FacetFeedV2ResultFragment on FacetFeedV2Result {
|
|
123
|
+
body {
|
|
124
|
+
id
|
|
125
|
+
header { ...FacetV2Fragment __typename }
|
|
126
|
+
body { ...FacetV2Fragment __typename }
|
|
127
|
+
layout { omitFooter __typename }
|
|
128
|
+
__typename
|
|
129
|
+
}
|
|
130
|
+
page { ...FacetV2PageFragment __typename }
|
|
131
|
+
header { ...FacetV2Fragment __typename }
|
|
132
|
+
footer { ...FacetV2Fragment __typename }
|
|
133
|
+
custom logging __typename
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
fragment FacetV2Fragment on FacetV2 {
|
|
137
|
+
...FacetV2BaseFragment
|
|
138
|
+
childrenMap { ...FacetV2BaseFragment __typename }
|
|
139
|
+
__typename
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
fragment FacetV2BaseFragment on FacetV2 {
|
|
143
|
+
id childrenCount
|
|
144
|
+
component { id category __typename }
|
|
145
|
+
name
|
|
146
|
+
text {
|
|
147
|
+
title
|
|
148
|
+
titleTextAttributes { textStyle textColor __typename }
|
|
149
|
+
subtitle
|
|
150
|
+
subtitleTextAttributes { textStyle textColor __typename }
|
|
151
|
+
accessory
|
|
152
|
+
accessoryTextAttributes { textStyle textColor __typename }
|
|
153
|
+
description
|
|
154
|
+
descriptionTextAttributes { textStyle textColor __typename }
|
|
155
|
+
custom { key value __typename }
|
|
156
|
+
__typename
|
|
157
|
+
}
|
|
158
|
+
images {
|
|
159
|
+
main { ...FacetV2ImageFragment __typename }
|
|
160
|
+
icon { ...FacetV2ImageFragment __typename }
|
|
161
|
+
background { ...FacetV2ImageFragment __typename }
|
|
162
|
+
accessory { ...FacetV2ImageFragment __typename }
|
|
163
|
+
custom { key value { ...FacetV2ImageFragment __typename } __typename }
|
|
164
|
+
__typename
|
|
165
|
+
}
|
|
166
|
+
events { click { name data __typename } __typename }
|
|
167
|
+
style {
|
|
168
|
+
spacing background_color
|
|
169
|
+
border { color width style __typename }
|
|
170
|
+
sizeClass dlsType __typename
|
|
171
|
+
}
|
|
172
|
+
layout {
|
|
173
|
+
omitFooter
|
|
174
|
+
gridSpecs {
|
|
175
|
+
Mobile { ...FacetV2LayoutGridFragment __typename }
|
|
176
|
+
Phablet { ...FacetV2LayoutGridFragment __typename }
|
|
177
|
+
Tablet { ...FacetV2LayoutGridFragment __typename }
|
|
178
|
+
Desktop { ...FacetV2LayoutGridFragment __typename }
|
|
179
|
+
WideScreen { ...FacetV2LayoutGridFragment __typename }
|
|
180
|
+
UltraWideScreen { ...FacetV2LayoutGridFragment __typename }
|
|
181
|
+
__typename
|
|
182
|
+
}
|
|
183
|
+
dlsPadding { top right bottom left __typename }
|
|
184
|
+
__typename
|
|
185
|
+
}
|
|
186
|
+
custom logging __typename
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
fragment FacetV2ImageFragment on FacetV2Image {
|
|
190
|
+
uri videoUri placeholder local style logging
|
|
191
|
+
events { click { name data __typename } __typename }
|
|
192
|
+
__typename
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
fragment FacetV2LayoutGridFragment on FacetV2LayoutGrid {
|
|
196
|
+
interRowSpacing interColumnSpacing minDimensionCount __typename
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
fragment FacetV2PageFragment on FacetV2Page {
|
|
200
|
+
next { name data __typename }
|
|
201
|
+
onLoad { name data __typename }
|
|
202
|
+
__typename
|
|
203
|
+
}`;
|
package/src/doordash/session.ts
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import { existsSync, readFileSync, writeFileSync, mkdirSync, unlinkSync } from 'node:fs';
|
|
7
7
|
import { join } from 'node:path';
|
|
8
8
|
import { getDataDir } from '../util/platform.js';
|
|
9
|
+
import { ConfigError } from '../util/errors.js';
|
|
9
10
|
import type { SessionRecording, ExtractedCredential } from '../tools/browser/network-recording-types.js';
|
|
10
11
|
|
|
11
12
|
export interface DoorDashSession {
|
|
@@ -50,11 +51,11 @@ export function clearSession(): void {
|
|
|
50
51
|
*/
|
|
51
52
|
export function importFromRecording(recordingPath: string): DoorDashSession {
|
|
52
53
|
if (!existsSync(recordingPath)) {
|
|
53
|
-
throw new
|
|
54
|
+
throw new ConfigError(`Recording not found: ${recordingPath}`);
|
|
54
55
|
}
|
|
55
56
|
const recording = JSON.parse(readFileSync(recordingPath, 'utf-8')) as SessionRecording;
|
|
56
57
|
if (!recording.cookies?.length) {
|
|
57
|
-
throw new
|
|
58
|
+
throw new ConfigError('Recording contains no cookies');
|
|
58
59
|
}
|
|
59
60
|
const session: DoorDashSession = {
|
|
60
61
|
cookies: recording.cookies,
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GraphQL queries for DoorDash store pages, item details, and retail store feeds.
|
|
3
|
+
* Each query is fully self-contained with all required fragment definitions.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
// ---------------------------------------------------------------------------
|
|
7
|
+
// STORE_PAGE_QUERY
|
|
8
|
+
// ---------------------------------------------------------------------------
|
|
9
|
+
|
|
10
|
+
export const STORE_PAGE_QUERY = `
|
|
11
|
+
query storepageFeed($storeId: ID!, $menuId: ID, $isMerchantPreview: Boolean, $fulfillmentType: FulfillmentType, $cursor: String, $menuSurfaceArea: MenuSurfaceArea, $scheduledTime: String, $scheduledMinTimeUtc: String, $scheduledMaxTimeUtc: String, $entryPoint: StoreEntryPoint, $DMGroups: [DMGroup]) {
|
|
12
|
+
storepageFeed(storeId: $storeId, menuId: $menuId, isMerchantPreview: $isMerchantPreview, fulfillmentType: $fulfillmentType, cursor: $cursor, menuSurfaceArea: $menuSurfaceArea, scheduledTime: $scheduledTime, scheduledMinTimeUtc: $scheduledMinTimeUtc, scheduledMaxTimeUtc: $scheduledMaxTimeUtc, entryPoint: $entryPoint, DMGroups: $DMGroups) {
|
|
13
|
+
storeHeader {
|
|
14
|
+
id name description offersDelivery offersPickup isDashpassPartner
|
|
15
|
+
coverImgUrl currency
|
|
16
|
+
address { lat lng city state street displayAddress __typename }
|
|
17
|
+
business { id name __typename }
|
|
18
|
+
ratings { numRatings numRatingsDisplayString averageRating isNewlyAdded __typename }
|
|
19
|
+
deliveryFeeLayout { title subtitle isSurging displayDeliveryFee __typename }
|
|
20
|
+
deliveryTimeLayout { title subtitle __typename }
|
|
21
|
+
status {
|
|
22
|
+
delivery { isAvailable minutes displayUnavailableStatus unavailableReason __typename }
|
|
23
|
+
pickup { isAvailable minutes displayUnavailableStatus unavailableReason __typename }
|
|
24
|
+
__typename
|
|
25
|
+
}
|
|
26
|
+
asapMinutes asapPickupMinutes priceRange priceRangeDisplayString
|
|
27
|
+
__typename
|
|
28
|
+
}
|
|
29
|
+
menuBook {
|
|
30
|
+
id name displayOpenHours
|
|
31
|
+
menuCategories { id name numItems next { anchor cursor __typename } __typename }
|
|
32
|
+
menuList { id name displayOpenHours __typename }
|
|
33
|
+
__typename
|
|
34
|
+
}
|
|
35
|
+
itemLists {
|
|
36
|
+
id name description
|
|
37
|
+
items {
|
|
38
|
+
id name description displayPrice displayStrikethroughPrice imageUrl
|
|
39
|
+
dynamicLabelDisplayString calloutDisplayString ratingDisplayString
|
|
40
|
+
storeId
|
|
41
|
+
quickAddContext {
|
|
42
|
+
isEligible
|
|
43
|
+
price { currency decimalPlaces displayString sign symbol unitAmount __typename }
|
|
44
|
+
nestedOptions specialInstructions defaultQuantity __typename
|
|
45
|
+
}
|
|
46
|
+
dietaryTagsList { type abbreviatedTagDisplayString fullTagDisplayString __typename }
|
|
47
|
+
badges { title titleColor backgroundColor badge { ...BadgeFragment __typename } __typename }
|
|
48
|
+
__typename
|
|
49
|
+
}
|
|
50
|
+
__typename
|
|
51
|
+
}
|
|
52
|
+
carousels {
|
|
53
|
+
id type name description
|
|
54
|
+
items {
|
|
55
|
+
id name description displayPrice displayStrikethroughPrice imgUrl
|
|
56
|
+
dynamicLabelDisplayString calloutDisplayString ratingDisplayString
|
|
57
|
+
nextCursor orderItemId
|
|
58
|
+
__typename
|
|
59
|
+
}
|
|
60
|
+
__typename
|
|
61
|
+
}
|
|
62
|
+
__typename
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
fragment BadgeFragment on Badge {
|
|
67
|
+
isDashpass type text backgroundColor styleType dlsTagSize dlsTextStyle
|
|
68
|
+
dlsTagStyle dlsTagType placement leadingIcon leadingIconSize trailingIcon
|
|
69
|
+
trailingIconSize endTime dlsTextColor
|
|
70
|
+
brandedDecorator { prefixText postfixText postfixTextLeadingIcon __typename }
|
|
71
|
+
trailingText { copy dlsTextStyle dlsTextColor __typename }
|
|
72
|
+
onClick __typename
|
|
73
|
+
}`;
|
|
74
|
+
|
|
75
|
+
// ---------------------------------------------------------------------------
|
|
76
|
+
// ITEM_PAGE_QUERY
|
|
77
|
+
// ---------------------------------------------------------------------------
|
|
78
|
+
|
|
79
|
+
export const ITEM_PAGE_QUERY = `
|
|
80
|
+
query itemPage($storeId: ID!, $itemId: ID!, $consumerId: ID, $isMerchantPreview: Boolean, $isNested: Boolean!, $fulfillmentType: FulfillmentType, $cursorContext: ItemPageCursorContextInput, $scheduledMinTimeUtc: String, $scheduledMaxTimeUtc: String) {
|
|
81
|
+
itemPage(storeId: $storeId, itemId: $itemId, consumerId: $consumerId, isMerchantPreview: $isMerchantPreview, fulfillmentType: $fulfillmentType, cursorContext: $cursorContext, scheduledMinTimeUtc: $scheduledMinTimeUtc, scheduledMaxTimeUtc: $scheduledMaxTimeUtc) {
|
|
82
|
+
itemHeader @skip(if: $isNested) {
|
|
83
|
+
id name imgUrl description displayString unitAmount currency decimalPlaces
|
|
84
|
+
specialInstructionsMaxLength calloutDisplayString quantityLimit
|
|
85
|
+
caloricInfoDisplayString menuId
|
|
86
|
+
dietaryTagsList { type abbreviatedTagDisplayString fullTagDisplayString __typename }
|
|
87
|
+
__typename
|
|
88
|
+
}
|
|
89
|
+
optionLists {
|
|
90
|
+
type id name subtitle selectionNode minNumOptions maxNumOptions
|
|
91
|
+
minAggregateOptionsQuantity maxAggregateOptionsQuantity
|
|
92
|
+
minOptionChoiceQuantity maxOptionChoiceQuantity numFreeOptions isOptional
|
|
93
|
+
options {
|
|
94
|
+
id name unitAmount currency displayString decimalPlaces nextCursor
|
|
95
|
+
caloricInfoDisplayString chargeAbove defaultQuantity imgUrl sortOrder
|
|
96
|
+
minOptionChoiceQuantity maxOptionChoiceQuantity
|
|
97
|
+
dietaryTagsList { type abbreviatedTagDisplayString fullTagDisplayString __typename }
|
|
98
|
+
nestedExtrasList {
|
|
99
|
+
type id name subtitle selectionNode minNumOptions maxNumOptions
|
|
100
|
+
minOptionChoiceQuantity maxOptionChoiceQuantity numFreeOptions isOptional
|
|
101
|
+
options {
|
|
102
|
+
id name unitAmount currency displayString decimalPlaces nextCursor
|
|
103
|
+
caloricInfoDisplayString imgUrl __typename
|
|
104
|
+
}
|
|
105
|
+
__typename
|
|
106
|
+
}
|
|
107
|
+
__typename
|
|
108
|
+
}
|
|
109
|
+
__typename
|
|
110
|
+
}
|
|
111
|
+
itemPreferences {
|
|
112
|
+
id title
|
|
113
|
+
specialInstructions { title characterMaxLength isEnabled placeholderText __typename }
|
|
114
|
+
substitutionPreferences {
|
|
115
|
+
title
|
|
116
|
+
substitutionPreferencesList { id displayString isDefault value __typename }
|
|
117
|
+
__typename
|
|
118
|
+
}
|
|
119
|
+
__typename
|
|
120
|
+
}
|
|
121
|
+
itemFooter { id data { title placementsFooter __typename } __typename }
|
|
122
|
+
__typename
|
|
123
|
+
}
|
|
124
|
+
}`;
|
|
125
|
+
|
|
126
|
+
// ---------------------------------------------------------------------------
|
|
127
|
+
// RETAIL_STORE_FEED_QUERY (for convenience/pharmacy stores like CVS, Duane Reade)
|
|
128
|
+
// ---------------------------------------------------------------------------
|
|
129
|
+
|
|
130
|
+
export const RETAIL_STORE_FEED_QUERY = `
|
|
131
|
+
query storeFeed($storeId: ID!, $attrSrc: String, $cursor: String, $enableDebug: Boolean) {
|
|
132
|
+
retailStorePageFeed(
|
|
133
|
+
storeId: $storeId
|
|
134
|
+
attrSrc: $attrSrc
|
|
135
|
+
cursor: $cursor
|
|
136
|
+
enableDebug: $enableDebug
|
|
137
|
+
) {
|
|
138
|
+
id
|
|
139
|
+
storeDetails {
|
|
140
|
+
id urlSlug name isActive coverSquareImgUrl
|
|
141
|
+
storeHeader {
|
|
142
|
+
...StoreHeaderFragment
|
|
143
|
+
__typename
|
|
144
|
+
}
|
|
145
|
+
__typename
|
|
146
|
+
}
|
|
147
|
+
l1Categories {
|
|
148
|
+
...RetailL1CategoryFragment
|
|
149
|
+
__typename
|
|
150
|
+
}
|
|
151
|
+
l1NavCategories {
|
|
152
|
+
...RetailL1NavCategoryFragment
|
|
153
|
+
__typename
|
|
154
|
+
}
|
|
155
|
+
collections {
|
|
156
|
+
...RetailCollectionFragment
|
|
157
|
+
__typename
|
|
158
|
+
}
|
|
159
|
+
page {
|
|
160
|
+
next { name data __typename }
|
|
161
|
+
onLoad { name data __typename }
|
|
162
|
+
__typename
|
|
163
|
+
}
|
|
164
|
+
__typename
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
fragment StoreHeaderFragment on StoreHeader {
|
|
169
|
+
id name description offersDelivery isConvenience isDashpassPartner
|
|
170
|
+
coverImgUrl
|
|
171
|
+
ratings { numRatings numRatingsDisplayString averageRating isNewlyAdded __typename }
|
|
172
|
+
deliveryFeeLayout { title subtitle isSurging displayDeliveryFee __typename }
|
|
173
|
+
distanceFromConsumer { value label __typename }
|
|
174
|
+
priceRangeDisplayString priceRange
|
|
175
|
+
address { displayAddress street city __typename }
|
|
176
|
+
status {
|
|
177
|
+
delivery { isAvailable minutes displayUnavailableStatus unavailableReason etaDisplayString __typename }
|
|
178
|
+
__typename
|
|
179
|
+
}
|
|
180
|
+
__typename
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
fragment RetailL1CategoryFragment on RetailL1Category {
|
|
184
|
+
id categoryId urlSlug name storeId imageUrl __typename
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
fragment RetailCollectionFragment on RetailCollection {
|
|
188
|
+
id collectionId urlSlug name storeId
|
|
189
|
+
products {
|
|
190
|
+
...BaseRetailItemDetailsFragment
|
|
191
|
+
__typename
|
|
192
|
+
}
|
|
193
|
+
pageInfo { cursor hasNextPage __typename }
|
|
194
|
+
__typename
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
fragment BaseRetailItemDetailsFragment on RetailItem {
|
|
198
|
+
id urlSlug name description storeId menuId imageUrl
|
|
199
|
+
price { ...MonetaryFieldsFragment __typename }
|
|
200
|
+
quickAddContext {
|
|
201
|
+
isEligible
|
|
202
|
+
price { currency decimalPlaces displayString unitAmount __typename }
|
|
203
|
+
nestedOptions specialInstructions defaultQuantity __typename
|
|
204
|
+
}
|
|
205
|
+
badges {
|
|
206
|
+
text type placement __typename
|
|
207
|
+
}
|
|
208
|
+
__typename
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
fragment MonetaryFieldsFragment on AmountMonetaryFields {
|
|
212
|
+
currency displayString decimalPlaces unitAmount sign symbol __typename
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
fragment RetailL1NavCategoryFragment on RetailL1NavCategory {
|
|
216
|
+
id name urlSlug imageUrl storeId categoryId navigationType
|
|
217
|
+
navigationData {
|
|
218
|
+
collectionPageRequest {
|
|
219
|
+
storeId collectionId collectionType showExploreItems attrSrc showCategories page supportsPagination __typename
|
|
220
|
+
}
|
|
221
|
+
collectionsRequest {
|
|
222
|
+
surface orderCartId itemId attrSrc page storeId __typename
|
|
223
|
+
}
|
|
224
|
+
__typename
|
|
225
|
+
}
|
|
226
|
+
__typename
|
|
227
|
+
}`;
|
|
228
|
+
|
|
229
|
+
// ---------------------------------------------------------------------------
|
|
230
|
+
// RETAIL_SEARCH_QUERY (search within a convenience/pharmacy store)
|
|
231
|
+
// ---------------------------------------------------------------------------
|
|
232
|
+
|
|
233
|
+
export const RETAIL_SEARCH_QUERY = `
|
|
234
|
+
query convenienceSearchQuery($input: RetailSearchInput!) {
|
|
235
|
+
retailSearch(input: $input) {
|
|
236
|
+
query
|
|
237
|
+
searchSummary {
|
|
238
|
+
searchedForKeyword suggestedSearchKeyword totalCount __typename
|
|
239
|
+
}
|
|
240
|
+
legoRetailItems {
|
|
241
|
+
id custom __typename
|
|
242
|
+
}
|
|
243
|
+
pageInfo { hasNextPage cursor __typename }
|
|
244
|
+
__typename
|
|
245
|
+
}
|
|
246
|
+
}`;
|