@5ss/ai-tools 3.7.2 → 3.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/CHANGELOG.md +18 -1
  2. package/README.md +3 -2
  3. package/dist/{bedrock-agentcore-browser-yrEY9cUi.js → bedrock-agentcore-browser-DINOmO6a.js} +2 -2
  4. package/dist/{bedrock-agentcore-browser-yrEY9cUi.js.map → bedrock-agentcore-browser-DINOmO6a.js.map} +1 -1
  5. package/dist/{bedrock-agentcore-code-interpreter-BnJnDxCp.js → bedrock-agentcore-code-interpreter-Doon_lrN.js} +2 -2
  6. package/dist/{bedrock-agentcore-code-interpreter-BnJnDxCp.js.map → bedrock-agentcore-code-interpreter-Doon_lrN.js.map} +1 -1
  7. package/dist/{cloudflare-browser-D9pG4RTj.js → cloudflare-browser-Ct8U4_Ru.js} +3 -3
  8. package/dist/{cloudflare-browser-D9pG4RTj.js.map → cloudflare-browser-Ct8U4_Ru.js.map} +1 -1
  9. package/dist/{cloudflare-email-bsq902dg.js → cloudflare-email-oS9Ku8a6.js} +2 -2
  10. package/dist/{cloudflare-email-bsq902dg.js.map → cloudflare-email-oS9Ku8a6.js.map} +1 -1
  11. package/dist/{cloudflare-sandbox-DHE4fmiq.js → cloudflare-sandbox-kpfw9aT6.js} +3 -3
  12. package/dist/{cloudflare-sandbox-DHE4fmiq.js.map → cloudflare-sandbox-kpfw9aT6.js.map} +1 -1
  13. package/dist/core/index.js +1 -1
  14. package/dist/core/index.js.map +1 -1
  15. package/dist/{define-DdFALdNf.js → define-CbQI8dAN.js} +2 -1
  16. package/dist/{define-DdFALdNf.js.map → define-CbQI8dAN.js.map} +1 -1
  17. package/dist/{eventbridge-scheduler-ICepMPWG.js → eventbridge-scheduler-CTgSZgZZ.js} +2 -2
  18. package/dist/{eventbridge-scheduler-ICepMPWG.js.map → eventbridge-scheduler-CTgSZgZZ.js.map} +1 -1
  19. package/dist/{imessage-B-0DZfMa.js → imessage-u90N3KVq.js} +2 -2
  20. package/dist/{imessage-B-0DZfMa.js.map → imessage-u90N3KVq.js.map} +1 -1
  21. package/dist/index-ByHp3nZm.d.ts.map +1 -1
  22. package/dist/index-CZX5OeOF.d.ts.map +1 -1
  23. package/dist/{mastra-vector-qKG3L-Rw.js → mastra-vector-BillORtZ.js} +2 -2
  24. package/dist/{mastra-vector-qKG3L-Rw.js.map → mastra-vector-BillORtZ.js.map} +1 -1
  25. package/dist/modules/artifacts/index.js +2 -2
  26. package/dist/modules/browser/index.js +3 -3
  27. package/dist/modules/calendar/index.js +1 -1
  28. package/dist/modules/code-sandbox/index.js +3 -3
  29. package/dist/modules/content-type/index.js +1 -1
  30. package/dist/modules/crypto/index.js +1 -1
  31. package/dist/modules/document-extract/index.js +2 -2
  32. package/dist/modules/document-render/index.js +2 -2
  33. package/dist/modules/email/index.js +3 -3
  34. package/dist/modules/email-message/index.js +1 -1
  35. package/dist/modules/files/index.js +2 -2
  36. package/dist/modules/image/index.js +2 -2
  37. package/dist/modules/messaging/index.js +6 -6
  38. package/dist/modules/queue/index.js +2 -2
  39. package/dist/modules/rag/index.js +2 -2
  40. package/dist/modules/scheduler/index.js +2 -2
  41. package/dist/modules/skills/index.js +1 -1
  42. package/dist/modules/tasks/index.js +1 -1
  43. package/dist/modules/vector-store/index.js +1 -1
  44. package/dist/modules/web-fetch/index.js +1 -1
  45. package/dist/{pinecone-tmtu3ZS5.js → pinecone-CLetgKeA.js} +2 -2
  46. package/dist/{pinecone-tmtu3ZS5.js.map → pinecone-CLetgKeA.js.map} +1 -1
  47. package/dist/{qdrant-zbCHUsnv.js → qdrant-DhnitNEu.js} +2 -2
  48. package/dist/{qdrant-zbCHUsnv.js.map → qdrant-DhnitNEu.js.map} +1 -1
  49. package/dist/{resend-Cfgm4HuV.js → resend-BBrjcYvB.js} +2 -2
  50. package/dist/{resend-Cfgm4HuV.js.map → resend-BBrjcYvB.js.map} +1 -1
  51. package/dist/{s3-TKCIZZ2q.js → s3-BpivS7pv.js} +36 -21
  52. package/dist/s3-BpivS7pv.js.map +1 -0
  53. package/dist/{slack-D6XzBS3b.js → slack-D9OmRfO9.js} +2 -2
  54. package/dist/{slack-D6XzBS3b.js.map → slack-D9OmRfO9.js.map} +1 -1
  55. package/dist/{sqs-B50DWyTf.js → sqs-BPNYdTpw.js} +2 -2
  56. package/dist/{sqs-B50DWyTf.js.map → sqs-BPNYdTpw.js.map} +1 -1
  57. package/dist/{supabase-vector-CDKOyvj1.js → supabase-vector-wRNCS3GC.js} +2 -2
  58. package/dist/{supabase-vector-CDKOyvj1.js.map → supabase-vector-wRNCS3GC.js.map} +1 -1
  59. package/dist/{teams-bGfle6pU.js → teams-SteU8V5H.js} +2 -2
  60. package/dist/{teams-bGfle6pU.js.map → teams-SteU8V5H.js.map} +1 -1
  61. package/dist/{telegram-B-TZi9fM.js → telegram-Buo2ZFGj.js} +2 -2
  62. package/dist/{telegram-B-TZi9fM.js.map → telegram-Buo2ZFGj.js.map} +1 -1
  63. package/dist/{textract-CthgcP6w.js → textract-BCNadrCr.js} +3 -3
  64. package/dist/{textract-CthgcP6w.js.map → textract-BCNadrCr.js.map} +1 -1
  65. package/dist/{vector-store-DrwuMOne.js → vector-store-DvqvDSLb.js} +6 -6
  66. package/dist/{vector-store-DrwuMOne.js.map → vector-store-DvqvDSLb.js.map} +1 -1
  67. package/dist/vendors/amazon-sp-api/index.js +1 -1
  68. package/dist/vendors/bedrock-agentcore-browser/index.js +1 -1
  69. package/dist/vendors/bedrock-agentcore-code-interpreter/index.js +1 -1
  70. package/dist/vendors/cloudflare-browser/index.js +1 -1
  71. package/dist/vendors/cloudflare-email/index.js +1 -1
  72. package/dist/vendors/cloudflare-sandbox/index.js +1 -1
  73. package/dist/vendors/eventbridge-scheduler/index.js +1 -1
  74. package/dist/vendors/imessage/index.js +1 -1
  75. package/dist/vendors/katana/index.js +1 -1
  76. package/dist/vendors/mastra-vector/index.js +1 -1
  77. package/dist/vendors/pinecone/index.js +1 -1
  78. package/dist/vendors/qdrant/index.js +1 -1
  79. package/dist/vendors/resend/index.js +1 -1
  80. package/dist/vendors/s3/index.js +1 -1
  81. package/dist/vendors/shipstation/index.js +1 -1
  82. package/dist/vendors/slack/index.js +1 -1
  83. package/dist/vendors/sqs/index.js +1 -1
  84. package/dist/vendors/supabase-vector/index.js +1 -1
  85. package/dist/vendors/teams/index.js +1 -1
  86. package/dist/vendors/telegram/index.js +1 -1
  87. package/dist/vendors/textract/index.js +1 -1
  88. package/dist/vendors/walmart/index.d.ts +421 -0
  89. package/dist/vendors/walmart/index.d.ts.map +1 -0
  90. package/dist/vendors/walmart/index.js +517 -0
  91. package/dist/vendors/walmart/index.js.map +1 -0
  92. package/dist/vendors/woocommerce/index.js +1 -1
  93. package/logos/README.md +1 -0
  94. package/logos/pack-logos.json +1 -0
  95. package/logos/walmart.svg +8 -0
  96. package/package.json +6 -2
  97. package/dist/s3-TKCIZZ2q.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"imessage-B-0DZfMa.js","names":["#http","#defaultPhone","#post","#phone"],"sources":["../src/vendors/imessage/contracts.ts","../src/vendors/imessage/domain.ts","../src/vendors/imessage/client.ts","../src/vendors/imessage/module.ts"],"sourcesContent":["import { z } from 'zod'\n\n/**\n * Host auth for the hosted photon-rest-proxy (REST → Spectrum gRPC).\n * Credentials are forwarded per request; the proxy stores nothing.\n *\n * Proxy route map (package client → HTTP):\n * - sendText → POST /v1/send\n * - editText → POST /v1/edit\n * - sendChatAction / stopTyping → POST /v1/typing\n * - setReaction → POST /v1/react\n * - clearReaction → POST /v1/clear-reaction (target message_id + emoji; proxy gap if not yet supported)\n * - unsend → POST /v1/unsend\n * - read → POST /v1/read\n * - sendMedia → POST /v1/media\n * - downloadFile → POST /v1/download (chat_id optional; proxy gap if still required)\n * - ensureChat → POST /v1/ensure-chat (host-only; proxy gap until implemented)\n */\nexport const imessageAuthSchema = z.object({\n\tbase_url: z.url().describe('Origin of the hosted photon-rest-proxy, for example https://photon-proxy.example.com'),\n\tproject_id: z.string().min(1).describe('Spectrum project id (sent as x-spectrum-project-id)'),\n\tproject_secret: z.string().min(1).describe('Spectrum project secret (sent as x-spectrum-project-secret)'),\n\tphone: z\n\t\t.string()\n\t\t.min(1)\n\t\t.optional()\n\t\t.describe('Optional default iMessage line phone when the project has multiple lines')\n})\n\nexport type ImessageAuth = z.infer<typeof imessageAuthSchema>\n\nexport const imessageChatActionSchema = z.enum([\n\t'typing',\n\t'upload_photo',\n\t'record_video',\n\t'upload_video',\n\t'record_voice',\n\t'upload_voice',\n\t'upload_document',\n\t'choose_sticker',\n\t'find_location',\n\t'record_video_note',\n\t'upload_video_note'\n])\n\nexport const imessageSendTextInputSchema = z.object({\n\tchat_id: z.string().min(1).describe('iMessage chat guid (e.g. any;-;alice@example.com)'),\n\ttext: z.string().min(1).describe('Message text'),\n\tphone: z.string().min(1).optional().describe('Optional line phone override for multi-line projects')\n})\n\nexport const imessageMessageOutputSchema = z.object({\n\tmessage_id: z.string().min(1).describe('Message guid (provider id for journaling)'),\n\tspace_id: z.string().describe('Chat guid (same as chat_id)')\n})\n\nexport const imessageEditTextInputSchema = z.object({\n\tchat_id: z.string().min(1).describe('iMessage chat guid'),\n\tmessage_id: z.string().min(1).describe('Message guid to edit'),\n\ttext: z.string().min(1).describe('Replacement text'),\n\tphone: z.string().min(1).optional().describe('Optional line phone override')\n})\n\nexport const imessageSendChatActionInputSchema = z.object({\n\tchat_id: z.string().min(1).describe('iMessage chat guid'),\n\taction: imessageChatActionSchema.describe('Chat action; non-typing values map to typing start'),\n\tphone: z.string().min(1).optional().describe('Optional line phone override')\n})\n\nexport const imessageSetReactionInputSchema = z.object({\n\tchat_id: z.string().min(1).describe('iMessage chat guid'),\n\tmessage_id: z.string().min(1).describe('Message guid to react to'),\n\temoji: z\n\t\t.string()\n\t\t.min(1)\n\t\t.max(64)\n\t\t.describe(\n\t\t\t'Tapback name (love, like, dislike, laugh, emphasize, question) or an emoji character the channel accepts'\n\t\t),\n\tphone: z.string().min(1).optional().describe('Optional line phone override')\n})\n\nexport const imessageUnsendInputSchema = z.object({\n\tchat_id: z.string().min(1).describe('iMessage chat guid'),\n\tmessage_id: z.string().min(1).describe('Message guid to unsend'),\n\tphone: z.string().min(1).optional().describe('Optional line phone override')\n})\n\nexport const imessageReadInputSchema = z.object({\n\tchat_id: z.string().min(1).describe('iMessage chat guid'),\n\tmessage_id: z\n\t\t.string()\n\t\t.min(1)\n\t\t.optional()\n\t\t.describe('Optional; mark-read may apply to the whole chat (field kept for seam parity)'),\n\tphone: z.string().min(1).optional().describe('Optional line phone override')\n})\n\nexport const imessageOkOutputSchema = z.object({\n\tok: z.boolean(),\n\tspace_id: z.string().optional()\n})\n\nexport const MAX_MEDIA_BYTES = 20 * 1024 * 1024\n\n/**\n * Clear a reaction. `message_id` is the **target** message that was reacted to;\n * `emoji` must match set-reaction. Proxy should clear by target+emoji (not reaction message id).\n */\nexport const imessageClearReactionInputSchema = z.object({\n\tchat_id: z.string().min(1).describe('iMessage chat guid'),\n\tmessage_id: z.string().min(1).describe('Target message guid that was reacted to'),\n\temoji: z.string().min(1).max(64).describe('Same tapback name or emoji used when setting the reaction'),\n\tphone: z.string().min(1).optional().describe('Optional line phone override')\n})\n\nexport const imessageSendMediaInputSchema = z.object({\n\tchat_id: z.string().min(1).describe('iMessage chat guid'),\n\tkind: z.enum(['photo', 'document']).describe('Media kind (presentation)'),\n\tbody_base64: z.string().min(1).describe('File body as base64'),\n\tfile_name: z.string().min(1).describe('File name including extension'),\n\tcaption: z.string().optional().describe('Optional caption sent as a follow-up text message'),\n\tcontent_type: z.string().optional().describe('Optional MIME type; inferred from file_name when omitted'),\n\tphone: z.string().min(1).optional().describe('Optional line phone override')\n})\n\nexport const imessageDownloadFileInputSchema = z.object({\n\tfile_id: z.string().min(1).describe('Attachment guid (from inbound payload or upload)'),\n\tfile_name: z.string().min(1).optional().describe('Preferred file name for the download result'),\n\tchat_id: z.string().min(1).optional().describe('Chat guid (optional when proxy can resolve by file_id alone)'),\n\tphone: z.string().min(1).optional().describe('Optional line phone override')\n})\n\nexport const imessageDownloadFileOutputSchema = z.object({\n\tfile_name: z.string(),\n\tfile_size: z.number().optional(),\n\tbody_base64: z.string().describe('Downloaded file body as base64')\n})\n\n/**\n * Create (or resolve) a chat via proxy POST /v1/ensure-chat (host-only).\n * One address = 1:1; two or more = group.\n */\nexport const imessageEnsureChatInputSchema = z.object({\n\taddresses: z\n\t\t.array(z.string().min(1))\n\t\t.min(1)\n\t\t.describe('Peer phone number(s) or email(s). One address creates a 1:1 chat; two or more create a group'),\n\tmessage: z.string().min(1).optional().describe('Optional opening text sent in the same create call'),\n\tclient_message_id: z\n\t\t.string()\n\t\t.min(1)\n\t\t.optional()\n\t\t.describe('Optional idempotency key for chat creation and the optional opening send'),\n\tphone: z.string().min(1).optional().describe('Optional line phone override')\n})\n\nexport const imessageEnsureChatOutputSchema = z.object({\n\tchat_id: z.string().min(1).describe('Chat guid for later send, edit, react, or unsend'),\n\tmessage_id: z\n\t\t.string()\n\t\t.min(1)\n\t\t.optional()\n\t\t.describe('Guid of the opening message when message was provided and the server returned one')\n})\n\nexport type ImessageSendTextInput = z.infer<typeof imessageSendTextInputSchema>\nexport type ImessageMessageOutput = z.infer<typeof imessageMessageOutputSchema>\nexport type ImessageEditTextInput = z.infer<typeof imessageEditTextInputSchema>\nexport type ImessageSendChatActionInput = z.infer<typeof imessageSendChatActionInputSchema>\nexport type ImessageSetReactionInput = z.infer<typeof imessageSetReactionInputSchema>\nexport type ImessageUnsendInput = z.infer<typeof imessageUnsendInputSchema>\nexport type ImessageReadInput = z.infer<typeof imessageReadInputSchema>\nexport type ImessageClearReactionInput = z.infer<typeof imessageClearReactionInputSchema>\nexport type ImessageSendMediaInput = z.infer<typeof imessageSendMediaInputSchema>\nexport type ImessageDownloadFileInput = z.infer<typeof imessageDownloadFileInputSchema>\nexport type ImessageDownloadFileOutput = z.infer<typeof imessageDownloadFileOutputSchema>\nexport type ImessageEnsureChatInput = z.infer<typeof imessageEnsureChatInputSchema>\nexport type ImessageEnsureChatOutput = z.infer<typeof imessageEnsureChatOutputSchema>\n","/**\n * photon-rest-proxy response parse + failure helpers (no HTTP).\n */\n\nimport { isPlainObject, isString } from 'es-toolkit'\n\nimport { ToolError } from '../../core/errors'\nimport { base64ToBytes } from '../../shared/bytes'\nimport type {\n\tImessageDownloadFileInput,\n\tImessageDownloadFileOutput,\n\tImessageEnsureChatOutput,\n\tImessageMessageOutput,\n\tImessageSendMediaInput\n} from './contracts'\nimport { MAX_MEDIA_BYTES } from './contracts'\n\nexport type ImessageFailureKind = 'definite_rejection' | 'outcome_unknown'\n\nexport class ImessageClientError extends ToolError {\n\treadonly failureKind: ImessageFailureKind\n\n\tconstructor(input: {\n\t\tmessage: string\n\t\tfailureKind: ImessageFailureKind\n\t\tstatus?: number\n\t\tcode?: string\n\t\tcause?: unknown\n\t}) {\n\t\tsuper(input.message, {\n\t\t\tcode: mapStatusToToolCode(input.status, input.code),\n\t\t\tretryable: input.failureKind === 'outcome_unknown',\n\t\t\tcause: input.cause,\n\t\t\tdetails: {\n\t\t\t\tfailure_kind: input.failureKind,\n\t\t\t\tstatus: input.status,\n\t\t\t\tproxy_error: input.code\n\t\t\t}\n\t\t})\n\t\tthis.name = 'ImessageClientError'\n\t\tthis.failureKind = input.failureKind\n\t}\n}\n\nexport function isImessageDefiniteRejection(error: unknown): boolean {\n\treturn error instanceof ImessageClientError && error.failureKind === 'definite_rejection'\n}\n\nexport function isImessageOutcomeUnknown(error: unknown): boolean {\n\treturn error instanceof ImessageClientError && error.failureKind === 'outcome_unknown'\n}\n\nfunction mapStatusToToolCode(status: number | undefined, proxyCode: string | undefined): ToolError['code'] {\n\tif (status === 401) return 'bad_auth'\n\tif (status === 403) return 'forbidden'\n\tif (status === 404) return 'not_found'\n\tif (status === 400) return 'bad_input'\n\tif (status === 429) return 'rate_limited'\n\tif (proxyCode === 'unauthorized') return 'bad_auth'\n\tif (proxyCode === 'message_not_found' || proxyCode === 'not_found') return 'not_found'\n\tif (proxyCode === 'unsupported' || proxyCode === 'not_implemented') return 'unsupported'\n\treturn 'upstream'\n}\n\nfunction isDefiniteStatus(status: number): boolean {\n\treturn status === 400 || status === 401 || status === 403 || status === 404\n}\n\n/** Parse photon-rest-proxy JSON error body or throw on non-2xx. */\nexport function assertProxyOk(label: string, status: number, data: unknown): void {\n\tif (status >= 200 && status < 300) return\n\n\tlet message = `${label} failed with HTTP ${status}`\n\tlet code: string | undefined\n\tif (isPlainObject(data)) {\n\t\tconst err = data['error']\n\t\tconst detail = data['detail']\n\t\tif (isString(err) && err.length > 0) {\n\t\t\tcode = err\n\t\t\tmessage = isString(detail) && detail.length > 0 ? `${err}: ${detail}` : err\n\t\t} else if (isString(detail) && detail.length > 0) {\n\t\t\tmessage = detail\n\t\t}\n\t}\n\n\tthrow new ImessageClientError({\n\t\tmessage,\n\t\tfailureKind: isDefiniteStatus(status) ? 'definite_rejection' : 'outcome_unknown',\n\t\tstatus,\n\t\t...(code && { code })\n\t})\n}\n\nfunction requireString(data: Record<string, unknown>, key: string, label: string): string {\n\tconst value = data[key]\n\tif (!isString(value) || value.length === 0) {\n\t\tthrow new ToolError(`iMessage proxy ${label} missing ${key}`, { code: 'upstream' })\n\t}\n\treturn value\n}\n\n/** Prefer space_id; accept chat_id alias from newer proxy shapes. */\nfunction spaceOrChatId(data: Record<string, unknown>, label: string): string {\n\tconst spaceId = data['space_id']\n\tif (isString(spaceId) && spaceId.length > 0) return spaceId\n\tconst chatId = data['chat_id']\n\tif (isString(chatId) && chatId.length > 0) return chatId\n\tthrow new ToolError(`iMessage proxy ${label} missing space_id`, { code: 'upstream' })\n}\n\nexport function parseMessageResult(data: unknown, label = 'send'): ImessageMessageOutput {\n\tif (!isPlainObject(data) || data['ok'] !== true) {\n\t\tthrow new ToolError(`iMessage proxy returned an unexpected ${label} payload`, { code: 'upstream' })\n\t}\n\treturn {\n\t\tspace_id: spaceOrChatId(data, label),\n\t\tmessage_id: requireString(data, 'message_id', label)\n\t}\n}\n\nexport function parseOkResult(data: unknown): { ok: true; space_id?: string } {\n\tif (!isPlainObject(data) || data['ok'] !== true) {\n\t\tthrow new ToolError('iMessage proxy returned an unexpected ok payload', { code: 'upstream' })\n\t}\n\tconst spaceId = data['space_id']\n\tconst chatId = data['chat_id']\n\tconst id =\n\t\tisString(spaceId) && spaceId.length > 0 ? spaceId : isString(chatId) && chatId.length > 0 ? chatId : undefined\n\treturn {\n\t\tok: true,\n\t\t...(id && { space_id: id })\n\t}\n}\n\nexport function parseEnsureChatResult(data: unknown): ImessageEnsureChatOutput {\n\tif (!isPlainObject(data) || data['ok'] !== true) {\n\t\tthrow new ToolError('iMessage proxy returned an unexpected ensure-chat payload', { code: 'upstream' })\n\t}\n\tconst chatId = spaceOrChatId(data, 'ensure-chat')\n\tconst messageId = data['message_id']\n\treturn {\n\t\tchat_id: chatId,\n\t\t...(isString(messageId) && messageId.length > 0 && { message_id: messageId })\n\t}\n}\n\n/** Map messaging-style chat_id to proxy space_id body fields. */\nexport function spaceBody(\n\tchatId: string | undefined,\n\tphone: string | undefined,\n\textra: Record<string, unknown> = {}\n): Record<string, unknown> {\n\treturn {\n\t\tplatform: 'imessage',\n\t\t...extra,\n\t\t...(chatId && { space_id: chatId }),\n\t\t...(phone && { phone })\n\t}\n}\n\n/** Decode and size-check media base64 for sendMedia. */\nexport function decodeMediaBody(bodyBase64: string): void {\n\tlet bytes: Uint8Array\n\ttry {\n\t\tbytes = base64ToBytes(bodyBase64)\n\t} catch (error) {\n\t\tthrow new ToolError('Invalid base64 body', { code: 'bad_input', cause: error })\n\t}\n\tif (bytes.byteLength === 0) {\n\t\tthrow new ToolError('Media body must not be empty', { code: 'bad_input' })\n\t}\n\tif (bytes.byteLength > MAX_MEDIA_BYTES) {\n\t\tthrow new ToolError('Media exceeds 20 MiB limit', {\n\t\t\tcode: 'too_large',\n\t\t\tdetails: { max_bytes: MAX_MEDIA_BYTES, content_length: bytes.byteLength }\n\t\t})\n\t}\n}\n\n/** Build POST /v1/media JSON body (base64 already validated). */\nexport function mediaBody(input: ImessageSendMediaInput, phone: string | undefined): Record<string, unknown> {\n\tdecodeMediaBody(input.body_base64)\n\treturn spaceBody(input.chat_id, phone, {\n\t\tbody_base64: input.body_base64,\n\t\tfile_name: input.file_name,\n\t\t...(input.content_type && { mime_type: input.content_type }),\n\t\t...(input.caption && { caption: input.caption })\n\t})\n}\n\nexport function parseDownloadResult(input: ImessageDownloadFileInput, data: unknown): ImessageDownloadFileOutput {\n\tif (!isPlainObject(data) || data['ok'] !== true) {\n\t\tthrow new ToolError('iMessage proxy returned an unexpected download payload', { code: 'upstream' })\n\t}\n\tconst bodyBase64 = data['body_base64']\n\tif (!isString(bodyBase64) || bodyBase64.length === 0) {\n\t\tthrow new ToolError('iMessage proxy download missing body_base64', { code: 'upstream' })\n\t}\n\tconst name = data['file_name']\n\tconst size = data['file_size']\n\treturn {\n\t\tfile_name: input.file_name ?? (isString(name) && name.length > 0 ? name : input.file_id),\n\t\t...(typeof size === 'number' && Number.isFinite(size) && { file_size: size }),\n\t\tbody_base64: bodyBase64\n\t}\n}\n","/**\n * iMessage vendor client via hosted photon-rest-proxy (REST → Spectrum gRPC).\n * Host: `new ImessageClient(auth)`. Agent tools: `fromContext(ctx)`.\n *\n * Workers-safe: only HTTP to the proxy. No Photon SDK / gRPC in this package.\n */\n\nimport { isPlainObject, isString } from 'es-toolkit'\n\nimport { ToolError } from '../../core/errors'\nimport { requireAuth } from '../../core/provider'\nimport type { ToolContext } from '../../core/types'\nimport { HttpService } from '../../transport/http-service'\nimport type { HttpServiceOptions } from '../../transport/http-service'\nimport type {\n\tImessageAuth,\n\tImessageClearReactionInput,\n\tImessageDownloadFileInput,\n\tImessageDownloadFileOutput,\n\tImessageEditTextInput,\n\tImessageEnsureChatInput,\n\tImessageEnsureChatOutput,\n\tImessageMessageOutput,\n\tImessageReadInput,\n\tImessageSendChatActionInput,\n\tImessageSendMediaInput,\n\tImessageSendTextInput,\n\tImessageSetReactionInput,\n\tImessageUnsendInput\n} from './contracts'\nimport { imessageAuthSchema } from './contracts'\nimport {\n\tassertProxyOk,\n\tisImessageDefiniteRejection,\n\tisImessageOutcomeUnknown,\n\tImessageClientError,\n\tmediaBody,\n\tparseDownloadResult,\n\tparseEnsureChatResult,\n\tparseMessageResult,\n\tparseOkResult,\n\tspaceBody\n} from './domain'\n\nexport type ImessageClientOptions = Pick<HttpServiceOptions, 'fetch' | 'signal'>\n\nexport class ImessageClient {\n\treadonly #http: HttpService\n\treadonly #defaultPhone: string | undefined\n\n\tconstructor(auth: ImessageAuth, options: ImessageClientOptions = {}) {\n\t\tconst parsed = imessageAuthSchema.safeParse(auth)\n\t\tif (!parsed.success) {\n\t\t\tthrow new ToolError('Invalid iMessage auth credentials', {\n\t\t\t\tcode: 'bad_auth',\n\t\t\t\tdetails: { issues: parsed.error.issues.map((issue) => issue.message) }\n\t\t\t})\n\t\t}\n\t\tconst { base_url, project_id, project_secret, phone } = parsed.data\n\t\tthis.#defaultPhone = phone\n\t\tthis.#http = new HttpService({\n\t\t\t...options,\n\t\t\tbaseURL: base_url,\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t'x-spectrum-project-id': project_id,\n\t\t\t\t'x-spectrum-project-secret': project_secret\n\t\t\t},\n\t\t\tlabel: 'iMessage'\n\t\t})\n\t}\n\n\tstatic fromContext(ctx: ToolContext): ImessageClient {\n\t\tconst auth = requireAuth(ctx, imessageAuthSchema)\n\t\treturn new ImessageClient(auth, {\n\t\t\t...(ctx.fetch && { fetch: ctx.fetch }),\n\t\t\t...(ctx.signal && { signal: ctx.signal })\n\t\t})\n\t}\n\n\t#phone(override: string | undefined): string | undefined {\n\t\treturn override ?? this.#defaultPhone\n\t}\n\n\tasync #post(path: string, body: Record<string, unknown>, label: string): Promise<unknown> {\n\t\tconst res = await this.#http.post(path, body, { label, noThrow: true })\n\t\tassertProxyOk(label, res.status, res.data)\n\t\treturn res.data\n\t}\n\n\t/**\n\t * Create a chat (1:1 or group). Host-only; not an agent tool.\n\t * Proxy: POST /v1/ensure-chat (fill on proxy if not yet shipped).\n\t */\n\tasync ensureChat(input: ImessageEnsureChatInput): Promise<ImessageEnsureChatOutput> {\n\t\tconst data = await this.#post(\n\t\t\t'/v1/ensure-chat',\n\t\t\tspaceBody(undefined, this.#phone(input.phone), {\n\t\t\t\taddresses: input.addresses,\n\t\t\t\t...(input.message && { message: input.message }),\n\t\t\t\t...(input.client_message_id && { client_message_id: input.client_message_id })\n\t\t\t}),\n\t\t\t'iMessage ensureChat'\n\t\t)\n\t\treturn parseEnsureChatResult(data)\n\t}\n\n\t/** POST /v1/send */\n\tasync sendText(input: ImessageSendTextInput): Promise<ImessageMessageOutput> {\n\t\tconst data = await this.#post(\n\t\t\t'/v1/send',\n\t\t\tspaceBody(input.chat_id, this.#phone(input.phone), { text: input.text }),\n\t\t\t'iMessage send'\n\t\t)\n\t\treturn parseMessageResult(data, 'send')\n\t}\n\n\t/** POST /v1/edit */\n\tasync editText(input: ImessageEditTextInput): Promise<ImessageMessageOutput> {\n\t\tconst data = await this.#post(\n\t\t\t'/v1/edit',\n\t\t\tspaceBody(input.chat_id, this.#phone(input.phone), {\n\t\t\t\tmessage_id: input.message_id,\n\t\t\t\ttext: input.text\n\t\t\t}),\n\t\t\t'iMessage edit'\n\t\t)\n\t\t// Prefer full message payload; fall back to ok + input message_id when proxy only returns ok.\n\t\tif (isPlainObject(data) && data['ok'] === true && isString(data['message_id']) && data['message_id'].length > 0) {\n\t\t\treturn parseMessageResult(data, 'edit')\n\t\t}\n\t\tconst ok = parseOkResult(data)\n\t\treturn {\n\t\t\tspace_id: ok.space_id ?? input.chat_id,\n\t\t\tmessage_id: input.message_id\n\t\t}\n\t}\n\n\t/**\n\t * POST /v1/typing.\n\t * Non-typing chat actions map to typing start (presentation parity with other channels).\n\t */\n\tasync sendChatAction(input: ImessageSendChatActionInput): Promise<void> {\n\t\tawait this.#post(\n\t\t\t'/v1/typing',\n\t\t\tspaceBody(input.chat_id, this.#phone(input.phone), { action: 'start' }),\n\t\t\t'iMessage typing'\n\t\t)\n\t}\n\n\t/** Stop typing indicator. */\n\tasync stopTyping(input: { chat_id: string; phone?: string }): Promise<void> {\n\t\tawait this.#post(\n\t\t\t'/v1/typing',\n\t\t\tspaceBody(input.chat_id, this.#phone(input.phone), { action: 'stop' }),\n\t\t\t'iMessage typing stop'\n\t\t)\n\t}\n\n\t/** POST /v1/react — returns reaction/message guid for journaling. */\n\tasync setReaction(input: ImessageSetReactionInput): Promise<ImessageMessageOutput> {\n\t\tconst data = await this.#post(\n\t\t\t'/v1/react',\n\t\t\tspaceBody(input.chat_id, this.#phone(input.phone), {\n\t\t\t\tmessage_id: input.message_id,\n\t\t\t\temoji: input.emoji\n\t\t\t}),\n\t\t\t'iMessage react'\n\t\t)\n\t\treturn parseMessageResult(data, 'react')\n\t}\n\n\t/**\n\t * POST /v1/clear-reaction.\n\t * Package contract: target message_id + emoji (same as setReaction).\n\t * Proxy should clear by target+emoji; older proxies that only accept reaction message ids need a gap fill.\n\t */\n\tasync clearReaction(input: ImessageClearReactionInput): Promise<void> {\n\t\tawait this.#post(\n\t\t\t'/v1/clear-reaction',\n\t\t\tspaceBody(input.chat_id, this.#phone(input.phone), {\n\t\t\t\tmessage_id: input.message_id,\n\t\t\t\temoji: input.emoji\n\t\t\t}),\n\t\t\t'iMessage clearReaction'\n\t\t)\n\t}\n\n\t/** POST /v1/unsend */\n\tasync unsend(input: ImessageUnsendInput): Promise<void> {\n\t\tawait this.#post(\n\t\t\t'/v1/unsend',\n\t\t\tspaceBody(input.chat_id, this.#phone(input.phone), { message_id: input.message_id }),\n\t\t\t'iMessage unsend'\n\t\t)\n\t}\n\n\t/** POST /v1/read */\n\tasync read(input: ImessageReadInput): Promise<void> {\n\t\tawait this.#post(\n\t\t\t'/v1/read',\n\t\t\tspaceBody(input.chat_id, this.#phone(input.phone), {\n\t\t\t\t...(input.message_id && { message_id: input.message_id })\n\t\t\t}),\n\t\t\t'iMessage read'\n\t\t)\n\t}\n\n\t/** POST /v1/media */\n\tasync sendMedia(input: ImessageSendMediaInput): Promise<ImessageMessageOutput> {\n\t\tconst data = await this.#post('/v1/media', mediaBody(input, this.#phone(input.phone)), 'iMessage sendMedia')\n\t\treturn parseMessageResult(data, 'media')\n\t}\n\n\t/**\n\t * POST /v1/download.\n\t * Prefer attachment guid alone; pass chat_id when the proxy still requires a space.\n\t */\n\tasync downloadFile(input: ImessageDownloadFileInput): Promise<ImessageDownloadFileOutput> {\n\t\tconst data = await this.#post(\n\t\t\t'/v1/download',\n\t\t\tspaceBody(input.chat_id, this.#phone(input.phone), { file_id: input.file_id }),\n\t\t\t'iMessage downloadFile'\n\t\t)\n\t\treturn parseDownloadResult(input, data)\n\t}\n\n\tasync answerCallback(_input: unknown): Promise<void> {\n\t\t// No interactive callbacks on iMessage.\n\t}\n}\n\nexport { isImessageDefiniteRejection, isImessageOutcomeUnknown, ImessageClientError }\n","import { defineModule, defineTool } from '../../core/define'\nimport { ImessageClient } from './client'\nimport {\n\timessageAuthSchema,\n\timessageClearReactionInputSchema,\n\timessageDownloadFileInputSchema,\n\timessageDownloadFileOutputSchema,\n\timessageEditTextInputSchema,\n\timessageMessageOutputSchema,\n\timessageOkOutputSchema,\n\timessageReadInputSchema,\n\timessageSendChatActionInputSchema,\n\timessageSendMediaInputSchema,\n\timessageSendTextInputSchema,\n\timessageSetReactionInputSchema,\n\timessageUnsendInputSchema\n} from './contracts'\n\nexport const imessageSendTextTool = defineTool({\n\tid: 'imessage-send-text',\n\tname: 'imessageSendText',\n\tdescription:\n\t\t'Send a text message to an iMessage chat. chat_id is the chat guid (e.g. any;-;+1555…). Returns message_id (guid) for later edits, reactions, or unsend.',\n\tinputSchema: imessageSendTextInputSchema,\n\toutputSchema: imessageMessageOutputSchema,\n\tsideEffect: 'send',\n\truntime: 'both',\n\tnetwork: true,\n\texecute: async (input, ctx) => ImessageClient.fromContext(ctx).sendText(input)\n})\n\nexport const imessageEditTextTool = defineTool({\n\tid: 'imessage-edit-text',\n\tname: 'imessageEditText',\n\tdescription: 'Edit the text of a previously sent iMessage. Requires chat guid and message guid.',\n\tinputSchema: imessageEditTextInputSchema,\n\toutputSchema: imessageMessageOutputSchema,\n\tsideEffect: 'write',\n\truntime: 'both',\n\tnetwork: true,\n\texecute: async (input, ctx) => ImessageClient.fromContext(ctx).editText(input)\n})\n\nexport const imessageSendChatActionTool = defineTool({\n\tid: 'imessage-send-chat-action',\n\tname: 'imessageSendChatAction',\n\tdescription: 'Show a typing indicator in an iMessage chat while a response is being prepared.',\n\tinputSchema: imessageSendChatActionInputSchema,\n\toutputSchema: imessageOkOutputSchema,\n\tsideEffect: 'none',\n\truntime: 'both',\n\tnetwork: true,\n\texecute: async (input, ctx) => {\n\t\tawait ImessageClient.fromContext(ctx).sendChatAction(input)\n\t\treturn { ok: true, space_id: input.chat_id }\n\t}\n})\n\nexport const imessageSetReactionTool = defineTool({\n\tid: 'imessage-set-reaction',\n\tname: 'imessageSetReaction',\n\tdescription:\n\t\t'React to an iMessage with a tapback (love, like, dislike, laugh, emphasize, question) or free emoji. Returns a message guid for journaling. To clear, call clear-reaction with the same target message_id and emoji.',\n\tinputSchema: imessageSetReactionInputSchema,\n\toutputSchema: imessageMessageOutputSchema,\n\tsideEffect: 'write',\n\truntime: 'both',\n\tnetwork: true,\n\texecute: async (input, ctx) => ImessageClient.fromContext(ctx).setReaction(input)\n})\n\nexport const imessageClearReactionTool = defineTool({\n\tid: 'imessage-clear-reaction',\n\tname: 'imessageClearReaction',\n\tdescription:\n\t\t'Clear an iMessage reaction. message_id is the target message that was reacted to; emoji must match set-reaction (tapback name or emoji character).',\n\tinputSchema: imessageClearReactionInputSchema,\n\toutputSchema: imessageOkOutputSchema,\n\tsideEffect: 'delete',\n\truntime: 'both',\n\tnetwork: true,\n\texecute: async (input, ctx) => {\n\t\tawait ImessageClient.fromContext(ctx).clearReaction(input)\n\t\treturn { ok: true, space_id: input.chat_id }\n\t}\n})\n\nexport const imessageUnsendTool = defineTool({\n\tid: 'imessage-unsend',\n\tname: 'imessageUnsend',\n\tdescription: 'Unsend a previously sent iMessage using its chat guid and message guid.',\n\tinputSchema: imessageUnsendInputSchema,\n\toutputSchema: imessageOkOutputSchema,\n\tsideEffect: 'delete',\n\truntime: 'both',\n\tnetwork: true,\n\texecute: async (input, ctx) => {\n\t\tawait ImessageClient.fromContext(ctx).unsend(input)\n\t\treturn { ok: true, space_id: input.chat_id }\n\t}\n})\n\nexport const imessageReadTool = defineTool({\n\tid: 'imessage-read',\n\tname: 'imessageRead',\n\tdescription: 'Mark an iMessage conversation as read (whole chat).',\n\tinputSchema: imessageReadInputSchema,\n\toutputSchema: imessageOkOutputSchema,\n\tsideEffect: 'write',\n\truntime: 'both',\n\tnetwork: true,\n\texecute: async (input, ctx) => {\n\t\tawait ImessageClient.fromContext(ctx).read(input)\n\t\treturn { ok: true, space_id: input.chat_id }\n\t}\n})\n\nexport const imessageSendMediaTool = defineTool({\n\tid: 'imessage-send-media',\n\tname: 'imessageSendMedia',\n\tdescription:\n\t\t'Upload and send one photo or document to an iMessage chat from base64 bytes. Optional caption is sent as a follow-up text message.',\n\tinputSchema: imessageSendMediaInputSchema,\n\toutputSchema: imessageMessageOutputSchema,\n\tsideEffect: 'send',\n\truntime: 'both',\n\tnetwork: true,\n\texecute: async (input, ctx) => ImessageClient.fromContext(ctx).sendMedia(input)\n})\n\nexport const imessageDownloadFileTool = defineTool({\n\tid: 'imessage-download-file',\n\tname: 'imessageDownloadFile',\n\tdescription: 'Download attachment bytes by attachment guid (file_id from inbound or upload).',\n\tinputSchema: imessageDownloadFileInputSchema,\n\toutputSchema: imessageDownloadFileOutputSchema,\n\tsideEffect: 'none',\n\truntime: 'both',\n\tnetwork: true,\n\texecute: async (input, ctx) => ImessageClient.fromContext(ctx).downloadFile(input)\n})\n\nexport const imessageModule = defineModule({\n\tid: 'imessage',\n\ttitle: 'iMessage',\n\tdescription:\n\t\t'iMessage tools for sending and editing text or media, typing indicators, reactions, unsend, read state, and attachment download via a bound photon-rest-proxy.',\n\truntime: 'both',\n\tauth: { type: 'custom', schema: imessageAuthSchema },\n\tcategories: ['messaging', 'chat'],\n\tclassification: 'pii',\n\ttags: ['imessage', 'photon'],\n\ttools: [\n\t\timessageSendTextTool,\n\t\timessageEditTextTool,\n\t\timessageSendChatActionTool,\n\t\timessageSetReactionTool,\n\t\timessageClearReactionTool,\n\t\timessageUnsendTool,\n\t\timessageReadTool,\n\t\timessageSendMediaTool,\n\t\timessageDownloadFileTool\n\t]\n})\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAkBA,MAAa,qBAAqB,EAAE,OAAO;CAC1C,UAAU,EAAE,IAAI,CAAC,CAAC,SAAS,sFAAsF;CACjH,YAAY,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,qDAAqD;CAC5F,gBAAgB,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,6DAA6D;CACxG,OAAO,EACL,OAAO,CAAC,CACR,IAAI,CAAC,CAAC,CACN,SAAS,CAAC,CACV,SAAS,0EAA0E;AACtF,CAAC;AAID,MAAa,2BAA2B,EAAE,KAAK;CAC9C;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACD,CAAC;AAED,MAAa,8BAA8B,EAAE,OAAO;CACnD,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,mDAAmD;CACvF,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,cAAc;CAC/C,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,sDAAsD;AACpG,CAAC;AAED,MAAa,8BAA8B,EAAE,OAAO;CACnD,YAAY,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,2CAA2C;CAClF,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS,6BAA6B;AAC5D,CAAC;AAED,MAAa,8BAA8B,EAAE,OAAO;CACnD,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,oBAAoB;CACxD,YAAY,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,sBAAsB;CAC7D,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,kBAAkB;CACnD,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,8BAA8B;AAC5E,CAAC;AAED,MAAa,oCAAoC,EAAE,OAAO;CACzD,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,oBAAoB;CACxD,QAAQ,yBAAyB,SAAS,oDAAoD;CAC9F,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,8BAA8B;AAC5E,CAAC;AAED,MAAa,iCAAiC,EAAE,OAAO;CACtD,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,oBAAoB;CACxD,YAAY,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,0BAA0B;CACjE,OAAO,EACL,OAAO,CAAC,CACR,IAAI,CAAC,CAAC,CACN,IAAI,EAAE,CAAC,CACP,SACA,0GACD;CACD,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,8BAA8B;AAC5E,CAAC;AAED,MAAa,4BAA4B,EAAE,OAAO;CACjD,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,oBAAoB;CACxD,YAAY,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,wBAAwB;CAC/D,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,8BAA8B;AAC5E,CAAC;AAED,MAAa,0BAA0B,EAAE,OAAO;CAC/C,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,oBAAoB;CACxD,YAAY,EACV,OAAO,CAAC,CACR,IAAI,CAAC,CAAC,CACN,SAAS,CAAC,CACV,SAAS,8EAA8E;CACzF,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,8BAA8B;AAC5E,CAAC;AAED,MAAa,yBAAyB,EAAE,OAAO;CAC9C,IAAI,EAAE,QAAQ;CACd,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS;AAC/B,CAAC;AAED,MAAa,kBAAkB,KAAK,OAAO;;;;;AAM3C,MAAa,mCAAmC,EAAE,OAAO;CACxD,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,oBAAoB;CACxD,YAAY,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,yCAAyC;CAChF,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,2DAA2D;CACrG,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,8BAA8B;AAC5E,CAAC;AAED,MAAa,+BAA+B,EAAE,OAAO;CACpD,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,oBAAoB;CACxD,MAAM,EAAE,KAAK,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,SAAS,2BAA2B;CACxE,aAAa,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,qBAAqB;CAC7D,WAAW,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,+BAA+B;CACrE,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,mDAAmD;CAC3F,cAAc,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,0DAA0D;CACvG,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,8BAA8B;AAC5E,CAAC;AAED,MAAa,kCAAkC,EAAE,OAAO;CACvD,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,kDAAkD;CACtF,WAAW,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,6CAA6C;CAC9F,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,8DAA8D;CAC7G,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,8BAA8B;AAC5E,CAAC;AAED,MAAa,mCAAmC,EAAE,OAAO;CACxD,WAAW,EAAE,OAAO;CACpB,WAAW,EAAE,OAAO,CAAC,CAAC,SAAS;CAC/B,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS,gCAAgC;AAClE,CAAC;;;;;AAMD,MAAa,gCAAgC,EAAE,OAAO;CACrD,WAAW,EACT,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACxB,IAAI,CAAC,CAAC,CACN,SAAS,8FAA8F;CACzG,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,oDAAoD;CACnG,mBAAmB,EACjB,OAAO,CAAC,CACR,IAAI,CAAC,CAAC,CACN,SAAS,CAAC,CACV,SAAS,0EAA0E;CACrF,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,8BAA8B;AAC5E,CAAC;AAED,MAAa,iCAAiC,EAAE,OAAO;CACtD,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,kDAAkD;CACtF,YAAY,EACV,OAAO,CAAC,CACR,IAAI,CAAC,CAAC,CACN,SAAS,CAAC,CACV,SAAS,mFAAmF;AAC/F,CAAC;;;;;;ACjJD,IAAa,sBAAb,cAAyC,UAAU;CAClD;CAEA,YAAY,OAMT;EACF,MAAM,MAAM,SAAS;GACpB,MAAM,oBAAoB,MAAM,QAAQ,MAAM,IAAI;GAClD,WAAW,MAAM,gBAAgB;GACjC,OAAO,MAAM;GACb,SAAS;IACR,cAAc,MAAM;IACpB,QAAQ,MAAM;IACd,aAAa,MAAM;GACpB;EACD,CAAC;EACD,KAAK,OAAO;EACZ,KAAK,cAAc,MAAM;CAC1B;AACD;AAEA,SAAgB,4BAA4B,OAAyB;CACpE,OAAO,iBAAiB,uBAAuB,MAAM,gBAAgB;AACtE;AAEA,SAAgB,yBAAyB,OAAyB;CACjE,OAAO,iBAAiB,uBAAuB,MAAM,gBAAgB;AACtE;AAEA,SAAS,oBAAoB,QAA4B,WAAkD;CAC1G,IAAI,WAAW,KAAK,OAAO;CAC3B,IAAI,WAAW,KAAK,OAAO;CAC3B,IAAI,WAAW,KAAK,OAAO;CAC3B,IAAI,WAAW,KAAK,OAAO;CAC3B,IAAI,WAAW,KAAK,OAAO;CAC3B,IAAI,cAAc,gBAAgB,OAAO;CACzC,IAAI,cAAc,uBAAuB,cAAc,aAAa,OAAO;CAC3E,IAAI,cAAc,iBAAiB,cAAc,mBAAmB,OAAO;CAC3E,OAAO;AACR;AAEA,SAAS,iBAAiB,QAAyB;CAClD,OAAO,WAAW,OAAO,WAAW,OAAO,WAAW,OAAO,WAAW;AACzE;;AAGA,SAAgB,cAAc,OAAe,QAAgB,MAAqB;CACjF,IAAI,UAAU,OAAO,SAAS,KAAK;CAEnC,IAAI,UAAU,GAAG,MAAM,oBAAoB;CAC3C,IAAI;CACJ,IAAI,cAAc,IAAI,GAAG;EACxB,MAAM,MAAM,KAAK;EACjB,MAAM,SAAS,KAAK;EACpB,IAAI,SAAS,GAAG,KAAK,IAAI,SAAS,GAAG;GACpC,OAAO;GACP,UAAU,SAAS,MAAM,KAAK,OAAO,SAAS,IAAI,GAAG,IAAI,IAAI,WAAW;EACzE,OAAO,IAAI,SAAS,MAAM,KAAK,OAAO,SAAS,GAC9C,UAAU;CAEZ;CAEA,MAAM,IAAI,oBAAoB;EAC7B;EACA,aAAa,iBAAiB,MAAM,IAAI,uBAAuB;EAC/D;EACA,GAAI,QAAQ,EAAE,KAAK;CACpB,CAAC;AACF;AAEA,SAAS,cAAc,MAA+B,KAAa,OAAuB;CACzF,MAAM,QAAQ,KAAK;CACnB,IAAI,CAAC,SAAS,KAAK,KAAK,MAAM,WAAW,GACxC,MAAM,IAAI,UAAU,kBAAkB,MAAM,WAAW,OAAO,EAAE,MAAM,WAAW,CAAC;CAEnF,OAAO;AACR;;AAGA,SAAS,cAAc,MAA+B,OAAuB;CAC5E,MAAM,UAAU,KAAK;CACrB,IAAI,SAAS,OAAO,KAAK,QAAQ,SAAS,GAAG,OAAO;CACpD,MAAM,SAAS,KAAK;CACpB,IAAI,SAAS,MAAM,KAAK,OAAO,SAAS,GAAG,OAAO;CAClD,MAAM,IAAI,UAAU,kBAAkB,MAAM,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACrF;AAEA,SAAgB,mBAAmB,MAAe,QAAQ,QAA+B;CACxF,IAAI,CAAC,cAAc,IAAI,KAAK,KAAK,UAAU,MAC1C,MAAM,IAAI,UAAU,yCAAyC,MAAM,WAAW,EAAE,MAAM,WAAW,CAAC;CAEnG,OAAO;EACN,UAAU,cAAc,MAAM,KAAK;EACnC,YAAY,cAAc,MAAM,cAAc,KAAK;CACpD;AACD;AAEA,SAAgB,cAAc,MAAgD;CAC7E,IAAI,CAAC,cAAc,IAAI,KAAK,KAAK,UAAU,MAC1C,MAAM,IAAI,UAAU,oDAAoD,EAAE,MAAM,WAAW,CAAC;CAE7F,MAAM,UAAU,KAAK;CACrB,MAAM,SAAS,KAAK;CACpB,MAAM,KACL,SAAS,OAAO,KAAK,QAAQ,SAAS,IAAI,UAAU,SAAS,MAAM,KAAK,OAAO,SAAS,IAAI,SAAS,KAAA;CACtG,OAAO;EACN,IAAI;EACJ,GAAI,MAAM,EAAE,UAAU,GAAG;CAC1B;AACD;AAEA,SAAgB,sBAAsB,MAAyC;CAC9E,IAAI,CAAC,cAAc,IAAI,KAAK,KAAK,UAAU,MAC1C,MAAM,IAAI,UAAU,6DAA6D,EAAE,MAAM,WAAW,CAAC;CAEtG,MAAM,SAAS,cAAc,MAAM,aAAa;CAChD,MAAM,YAAY,KAAK;CACvB,OAAO;EACN,SAAS;EACT,GAAI,SAAS,SAAS,KAAK,UAAU,SAAS,KAAK,EAAE,YAAY,UAAU;CAC5E;AACD;;AAGA,SAAgB,UACf,QACA,OACA,QAAiC,CAAC,GACR;CAC1B,OAAO;EACN,UAAU;EACV,GAAG;EACH,GAAI,UAAU,EAAE,UAAU,OAAO;EACjC,GAAI,SAAS,EAAE,MAAM;CACtB;AACD;;AAGA,SAAgB,gBAAgB,YAA0B;CACzD,IAAI;CACJ,IAAI;EACH,QAAQ,cAAc,UAAU;CACjC,SAAS,OAAO;EACf,MAAM,IAAI,UAAU,uBAAuB;GAAE,MAAM;GAAa,OAAO;EAAM,CAAC;CAC/E;CACA,IAAI,MAAM,eAAe,GACxB,MAAM,IAAI,UAAU,gCAAgC,EAAE,MAAM,YAAY,CAAC;CAE1E,IAAI,MAAM,aAAA,UACT,MAAM,IAAI,UAAU,8BAA8B;EACjD,MAAM;EACN,SAAS;GAAE,WAAW;GAAiB,gBAAgB,MAAM;EAAW;CACzE,CAAC;AAEH;;AAGA,SAAgB,UAAU,OAA+B,OAAoD;CAC5G,gBAAgB,MAAM,WAAW;CACjC,OAAO,UAAU,MAAM,SAAS,OAAO;EACtC,aAAa,MAAM;EACnB,WAAW,MAAM;EACjB,GAAI,MAAM,gBAAgB,EAAE,WAAW,MAAM,aAAa;EAC1D,GAAI,MAAM,WAAW,EAAE,SAAS,MAAM,QAAQ;CAC/C,CAAC;AACF;AAEA,SAAgB,oBAAoB,OAAkC,MAA2C;CAChH,IAAI,CAAC,cAAc,IAAI,KAAK,KAAK,UAAU,MAC1C,MAAM,IAAI,UAAU,0DAA0D,EAAE,MAAM,WAAW,CAAC;CAEnG,MAAM,aAAa,KAAK;CACxB,IAAI,CAAC,SAAS,UAAU,KAAK,WAAW,WAAW,GAClD,MAAM,IAAI,UAAU,+CAA+C,EAAE,MAAM,WAAW,CAAC;CAExF,MAAM,OAAO,KAAK;CAClB,MAAM,OAAO,KAAK;CAClB,OAAO;EACN,WAAW,MAAM,cAAc,SAAS,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,MAAM;EAChF,GAAI,OAAO,SAAS,YAAY,OAAO,SAAS,IAAI,KAAK,EAAE,WAAW,KAAK;EAC3E,aAAa;CACd;AACD;;;;;;;;;AC/JA,IAAa,iBAAb,MAAa,eAAe;CAC3B;CACA;CAEA,YAAY,MAAoB,UAAiC,CAAC,GAAG;EACpE,MAAM,SAAS,mBAAmB,UAAU,IAAI;EAChD,IAAI,CAAC,OAAO,SACX,MAAM,IAAI,UAAU,qCAAqC;GACxD,MAAM;GACN,SAAS,EAAE,QAAQ,OAAO,MAAM,OAAO,KAAK,UAAU,MAAM,OAAO,EAAE;EACtE,CAAC;EAEF,MAAM,EAAE,UAAU,YAAY,gBAAgB,UAAU,OAAO;EAC/D,KAAKC,gBAAgB;EACrB,KAAKD,QAAQ,IAAI,YAAY;GAC5B,GAAG;GACH,SAAS;GACT,SAAS;IACR,gBAAgB;IAChB,yBAAyB;IACzB,6BAA6B;GAC9B;GACA,OAAO;EACR,CAAC;CACF;CAEA,OAAO,YAAY,KAAkC;EACpD,MAAM,OAAO,YAAY,KAAK,kBAAkB;EAChD,OAAO,IAAI,eAAe,MAAM;GAC/B,GAAI,IAAI,SAAS,EAAE,OAAO,IAAI,MAAM;GACpC,GAAI,IAAI,UAAU,EAAE,QAAQ,IAAI,OAAO;EACxC,CAAC;CACF;CAEA,OAAO,UAAkD;EACxD,OAAO,YAAY,KAAKC;CACzB;CAEA,MAAMC,MAAM,MAAc,MAA+B,OAAiC;EACzF,MAAM,MAAM,MAAM,KAAKF,MAAM,KAAK,MAAM,MAAM;GAAE;GAAO,SAAS;EAAK,CAAC;EACtE,cAAc,OAAO,IAAI,QAAQ,IAAI,IAAI;EACzC,OAAO,IAAI;CACZ;;;;;CAMA,MAAM,WAAW,OAAmE;EAUnF,OAAO,sBAAsB,MATV,KAAKE,MACvB,mBACA,UAAU,KAAA,GAAW,KAAKC,OAAO,MAAM,KAAK,GAAG;GAC9C,WAAW,MAAM;GACjB,GAAI,MAAM,WAAW,EAAE,SAAS,MAAM,QAAQ;GAC9C,GAAI,MAAM,qBAAqB,EAAE,mBAAmB,MAAM,kBAAkB;EAC7E,CAAC,GACD,qBACD,CACiC;CAClC;;CAGA,MAAM,SAAS,OAA8D;EAM5E,OAAO,mBAAmB,MALP,KAAKD,MACvB,YACA,UAAU,MAAM,SAAS,KAAKC,OAAO,MAAM,KAAK,GAAG,EAAE,MAAM,MAAM,KAAK,CAAC,GACvE,eACD,GACgC,MAAM;CACvC;;CAGA,MAAM,SAAS,OAA8D;EAC5E,MAAM,OAAO,MAAM,KAAKD,MACvB,YACA,UAAU,MAAM,SAAS,KAAKC,OAAO,MAAM,KAAK,GAAG;GAClD,YAAY,MAAM;GAClB,MAAM,MAAM;EACb,CAAC,GACD,eACD;EAEA,IAAI,cAAc,IAAI,KAAK,KAAK,UAAU,QAAQ,SAAS,KAAK,aAAa,KAAK,KAAK,aAAa,CAAC,SAAS,GAC7G,OAAO,mBAAmB,MAAM,MAAM;EAGvC,OAAO;GACN,UAFU,cAAc,IAEb,CAAC,CAAC,YAAY,MAAM;GAC/B,YAAY,MAAM;EACnB;CACD;;;;;CAMA,MAAM,eAAe,OAAmD;EACvE,MAAM,KAAKD,MACV,cACA,UAAU,MAAM,SAAS,KAAKC,OAAO,MAAM,KAAK,GAAG,EAAE,QAAQ,QAAQ,CAAC,GACtE,iBACD;CACD;;CAGA,MAAM,WAAW,OAA2D;EAC3E,MAAM,KAAKD,MACV,cACA,UAAU,MAAM,SAAS,KAAKC,OAAO,MAAM,KAAK,GAAG,EAAE,QAAQ,OAAO,CAAC,GACrE,sBACD;CACD;;CAGA,MAAM,YAAY,OAAiE;EASlF,OAAO,mBAAmB,MARP,KAAKD,MACvB,aACA,UAAU,MAAM,SAAS,KAAKC,OAAO,MAAM,KAAK,GAAG;GAClD,YAAY,MAAM;GAClB,OAAO,MAAM;EACd,CAAC,GACD,gBACD,GACgC,OAAO;CACxC;;;;;;CAOA,MAAM,cAAc,OAAkD;EACrE,MAAM,KAAKD,MACV,sBACA,UAAU,MAAM,SAAS,KAAKC,OAAO,MAAM,KAAK,GAAG;GAClD,YAAY,MAAM;GAClB,OAAO,MAAM;EACd,CAAC,GACD,wBACD;CACD;;CAGA,MAAM,OAAO,OAA2C;EACvD,MAAM,KAAKD,MACV,cACA,UAAU,MAAM,SAAS,KAAKC,OAAO,MAAM,KAAK,GAAG,EAAE,YAAY,MAAM,WAAW,CAAC,GACnF,iBACD;CACD;;CAGA,MAAM,KAAK,OAAyC;EACnD,MAAM,KAAKD,MACV,YACA,UAAU,MAAM,SAAS,KAAKC,OAAO,MAAM,KAAK,GAAG,EAClD,GAAI,MAAM,cAAc,EAAE,YAAY,MAAM,WAAW,EACxD,CAAC,GACD,eACD;CACD;;CAGA,MAAM,UAAU,OAA+D;EAE9E,OAAO,mBAAmB,MADP,KAAKD,MAAM,aAAa,UAAU,OAAO,KAAKC,OAAO,MAAM,KAAK,CAAC,GAAG,oBAAoB,GAC3E,OAAO;CACxC;;;;;CAMA,MAAM,aAAa,OAAuE;EAMzF,OAAO,oBAAoB,OAAO,MALf,KAAKD,MACvB,gBACA,UAAU,MAAM,SAAS,KAAKC,OAAO,MAAM,KAAK,GAAG,EAAE,SAAS,MAAM,QAAQ,CAAC,GAC7E,uBACD,CACsC;CACvC;CAEA,MAAM,eAAe,QAAgC,CAErD;AACD;;;ACpNA,MAAa,uBAAuB,WAAW;CAC9C,IAAI;CACJ,MAAM;CACN,aACC;CACD,aAAa;CACb,cAAc;CACd,YAAY;CACZ,SAAS;CACT,SAAS;CACT,SAAS,OAAO,OAAO,QAAQ,eAAe,YAAY,GAAG,CAAC,CAAC,SAAS,KAAK;AAC9E,CAAC;AAED,MAAa,uBAAuB,WAAW;CAC9C,IAAI;CACJ,MAAM;CACN,aAAa;CACb,aAAa;CACb,cAAc;CACd,YAAY;CACZ,SAAS;CACT,SAAS;CACT,SAAS,OAAO,OAAO,QAAQ,eAAe,YAAY,GAAG,CAAC,CAAC,SAAS,KAAK;AAC9E,CAAC;AAED,MAAa,6BAA6B,WAAW;CACpD,IAAI;CACJ,MAAM;CACN,aAAa;CACb,aAAa;CACb,cAAc;CACd,YAAY;CACZ,SAAS;CACT,SAAS;CACT,SAAS,OAAO,OAAO,QAAQ;EAC9B,MAAM,eAAe,YAAY,GAAG,CAAC,CAAC,eAAe,KAAK;EAC1D,OAAO;GAAE,IAAI;GAAM,UAAU,MAAM;EAAQ;CAC5C;AACD,CAAC;AAED,MAAa,0BAA0B,WAAW;CACjD,IAAI;CACJ,MAAM;CACN,aACC;CACD,aAAa;CACb,cAAc;CACd,YAAY;CACZ,SAAS;CACT,SAAS;CACT,SAAS,OAAO,OAAO,QAAQ,eAAe,YAAY,GAAG,CAAC,CAAC,YAAY,KAAK;AACjF,CAAC;AAED,MAAa,4BAA4B,WAAW;CACnD,IAAI;CACJ,MAAM;CACN,aACC;CACD,aAAa;CACb,cAAc;CACd,YAAY;CACZ,SAAS;CACT,SAAS;CACT,SAAS,OAAO,OAAO,QAAQ;EAC9B,MAAM,eAAe,YAAY,GAAG,CAAC,CAAC,cAAc,KAAK;EACzD,OAAO;GAAE,IAAI;GAAM,UAAU,MAAM;EAAQ;CAC5C;AACD,CAAC;AAED,MAAa,qBAAqB,WAAW;CAC5C,IAAI;CACJ,MAAM;CACN,aAAa;CACb,aAAa;CACb,cAAc;CACd,YAAY;CACZ,SAAS;CACT,SAAS;CACT,SAAS,OAAO,OAAO,QAAQ;EAC9B,MAAM,eAAe,YAAY,GAAG,CAAC,CAAC,OAAO,KAAK;EAClD,OAAO;GAAE,IAAI;GAAM,UAAU,MAAM;EAAQ;CAC5C;AACD,CAAC;AAED,MAAa,mBAAmB,WAAW;CAC1C,IAAI;CACJ,MAAM;CACN,aAAa;CACb,aAAa;CACb,cAAc;CACd,YAAY;CACZ,SAAS;CACT,SAAS;CACT,SAAS,OAAO,OAAO,QAAQ;EAC9B,MAAM,eAAe,YAAY,GAAG,CAAC,CAAC,KAAK,KAAK;EAChD,OAAO;GAAE,IAAI;GAAM,UAAU,MAAM;EAAQ;CAC5C;AACD,CAAC;AAED,MAAa,wBAAwB,WAAW;CAC/C,IAAI;CACJ,MAAM;CACN,aACC;CACD,aAAa;CACb,cAAc;CACd,YAAY;CACZ,SAAS;CACT,SAAS;CACT,SAAS,OAAO,OAAO,QAAQ,eAAe,YAAY,GAAG,CAAC,CAAC,UAAU,KAAK;AAC/E,CAAC;AAED,MAAa,2BAA2B,WAAW;CAClD,IAAI;CACJ,MAAM;CACN,aAAa;CACb,aAAa;CACb,cAAc;CACd,YAAY;CACZ,SAAS;CACT,SAAS;CACT,SAAS,OAAO,OAAO,QAAQ,eAAe,YAAY,GAAG,CAAC,CAAC,aAAa,KAAK;AAClF,CAAC;AAED,MAAa,iBAAiB,aAAa;CAC1C,IAAI;CACJ,OAAO;CACP,aACC;CACD,SAAS;CACT,MAAM;EAAE,MAAM;EAAU,QAAQ;CAAmB;CACnD,YAAY,CAAC,aAAa,MAAM;CAChC,gBAAgB;CAChB,MAAM,CAAC,YAAY,QAAQ;CAC3B,OAAO;EACN;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD;AACD,CAAC"}
1
+ {"version":3,"file":"imessage-u90N3KVq.js","names":["#http","#defaultPhone","#post","#phone"],"sources":["../src/vendors/imessage/contracts.ts","../src/vendors/imessage/domain.ts","../src/vendors/imessage/client.ts","../src/vendors/imessage/module.ts"],"sourcesContent":["import { z } from 'zod'\n\n/**\n * Host auth for the hosted photon-rest-proxy (REST → Spectrum gRPC).\n * Credentials are forwarded per request; the proxy stores nothing.\n *\n * Proxy route map (package client → HTTP):\n * - sendText → POST /v1/send\n * - editText → POST /v1/edit\n * - sendChatAction / stopTyping → POST /v1/typing\n * - setReaction → POST /v1/react\n * - clearReaction → POST /v1/clear-reaction (target message_id + emoji; proxy gap if not yet supported)\n * - unsend → POST /v1/unsend\n * - read → POST /v1/read\n * - sendMedia → POST /v1/media\n * - downloadFile → POST /v1/download (chat_id optional; proxy gap if still required)\n * - ensureChat → POST /v1/ensure-chat (host-only; proxy gap until implemented)\n */\nexport const imessageAuthSchema = z.object({\n\tbase_url: z.url().describe('Origin of the hosted photon-rest-proxy, for example https://photon-proxy.example.com'),\n\tproject_id: z.string().min(1).describe('Spectrum project id (sent as x-spectrum-project-id)'),\n\tproject_secret: z.string().min(1).describe('Spectrum project secret (sent as x-spectrum-project-secret)'),\n\tphone: z\n\t\t.string()\n\t\t.min(1)\n\t\t.optional()\n\t\t.describe('Optional default iMessage line phone when the project has multiple lines')\n})\n\nexport type ImessageAuth = z.infer<typeof imessageAuthSchema>\n\nexport const imessageChatActionSchema = z.enum([\n\t'typing',\n\t'upload_photo',\n\t'record_video',\n\t'upload_video',\n\t'record_voice',\n\t'upload_voice',\n\t'upload_document',\n\t'choose_sticker',\n\t'find_location',\n\t'record_video_note',\n\t'upload_video_note'\n])\n\nexport const imessageSendTextInputSchema = z.object({\n\tchat_id: z.string().min(1).describe('iMessage chat guid (e.g. any;-;alice@example.com)'),\n\ttext: z.string().min(1).describe('Message text'),\n\tphone: z.string().min(1).optional().describe('Optional line phone override for multi-line projects')\n})\n\nexport const imessageMessageOutputSchema = z.object({\n\tmessage_id: z.string().min(1).describe('Message guid (provider id for journaling)'),\n\tspace_id: z.string().describe('Chat guid (same as chat_id)')\n})\n\nexport const imessageEditTextInputSchema = z.object({\n\tchat_id: z.string().min(1).describe('iMessage chat guid'),\n\tmessage_id: z.string().min(1).describe('Message guid to edit'),\n\ttext: z.string().min(1).describe('Replacement text'),\n\tphone: z.string().min(1).optional().describe('Optional line phone override')\n})\n\nexport const imessageSendChatActionInputSchema = z.object({\n\tchat_id: z.string().min(1).describe('iMessage chat guid'),\n\taction: imessageChatActionSchema.describe('Chat action; non-typing values map to typing start'),\n\tphone: z.string().min(1).optional().describe('Optional line phone override')\n})\n\nexport const imessageSetReactionInputSchema = z.object({\n\tchat_id: z.string().min(1).describe('iMessage chat guid'),\n\tmessage_id: z.string().min(1).describe('Message guid to react to'),\n\temoji: z\n\t\t.string()\n\t\t.min(1)\n\t\t.max(64)\n\t\t.describe(\n\t\t\t'Tapback name (love, like, dislike, laugh, emphasize, question) or an emoji character the channel accepts'\n\t\t),\n\tphone: z.string().min(1).optional().describe('Optional line phone override')\n})\n\nexport const imessageUnsendInputSchema = z.object({\n\tchat_id: z.string().min(1).describe('iMessage chat guid'),\n\tmessage_id: z.string().min(1).describe('Message guid to unsend'),\n\tphone: z.string().min(1).optional().describe('Optional line phone override')\n})\n\nexport const imessageReadInputSchema = z.object({\n\tchat_id: z.string().min(1).describe('iMessage chat guid'),\n\tmessage_id: z\n\t\t.string()\n\t\t.min(1)\n\t\t.optional()\n\t\t.describe('Optional; mark-read may apply to the whole chat (field kept for seam parity)'),\n\tphone: z.string().min(1).optional().describe('Optional line phone override')\n})\n\nexport const imessageOkOutputSchema = z.object({\n\tok: z.boolean(),\n\tspace_id: z.string().optional()\n})\n\nexport const MAX_MEDIA_BYTES = 20 * 1024 * 1024\n\n/**\n * Clear a reaction. `message_id` is the **target** message that was reacted to;\n * `emoji` must match set-reaction. Proxy should clear by target+emoji (not reaction message id).\n */\nexport const imessageClearReactionInputSchema = z.object({\n\tchat_id: z.string().min(1).describe('iMessage chat guid'),\n\tmessage_id: z.string().min(1).describe('Target message guid that was reacted to'),\n\temoji: z.string().min(1).max(64).describe('Same tapback name or emoji used when setting the reaction'),\n\tphone: z.string().min(1).optional().describe('Optional line phone override')\n})\n\nexport const imessageSendMediaInputSchema = z.object({\n\tchat_id: z.string().min(1).describe('iMessage chat guid'),\n\tkind: z.enum(['photo', 'document']).describe('Media kind (presentation)'),\n\tbody_base64: z.string().min(1).describe('File body as base64'),\n\tfile_name: z.string().min(1).describe('File name including extension'),\n\tcaption: z.string().optional().describe('Optional caption sent as a follow-up text message'),\n\tcontent_type: z.string().optional().describe('Optional MIME type; inferred from file_name when omitted'),\n\tphone: z.string().min(1).optional().describe('Optional line phone override')\n})\n\nexport const imessageDownloadFileInputSchema = z.object({\n\tfile_id: z.string().min(1).describe('Attachment guid (from inbound payload or upload)'),\n\tfile_name: z.string().min(1).optional().describe('Preferred file name for the download result'),\n\tchat_id: z.string().min(1).optional().describe('Chat guid (optional when proxy can resolve by file_id alone)'),\n\tphone: z.string().min(1).optional().describe('Optional line phone override')\n})\n\nexport const imessageDownloadFileOutputSchema = z.object({\n\tfile_name: z.string(),\n\tfile_size: z.number().optional(),\n\tbody_base64: z.string().describe('Downloaded file body as base64')\n})\n\n/**\n * Create (or resolve) a chat via proxy POST /v1/ensure-chat (host-only).\n * One address = 1:1; two or more = group.\n */\nexport const imessageEnsureChatInputSchema = z.object({\n\taddresses: z\n\t\t.array(z.string().min(1))\n\t\t.min(1)\n\t\t.describe('Peer phone number(s) or email(s). One address creates a 1:1 chat; two or more create a group'),\n\tmessage: z.string().min(1).optional().describe('Optional opening text sent in the same create call'),\n\tclient_message_id: z\n\t\t.string()\n\t\t.min(1)\n\t\t.optional()\n\t\t.describe('Optional idempotency key for chat creation and the optional opening send'),\n\tphone: z.string().min(1).optional().describe('Optional line phone override')\n})\n\nexport const imessageEnsureChatOutputSchema = z.object({\n\tchat_id: z.string().min(1).describe('Chat guid for later send, edit, react, or unsend'),\n\tmessage_id: z\n\t\t.string()\n\t\t.min(1)\n\t\t.optional()\n\t\t.describe('Guid of the opening message when message was provided and the server returned one')\n})\n\nexport type ImessageSendTextInput = z.infer<typeof imessageSendTextInputSchema>\nexport type ImessageMessageOutput = z.infer<typeof imessageMessageOutputSchema>\nexport type ImessageEditTextInput = z.infer<typeof imessageEditTextInputSchema>\nexport type ImessageSendChatActionInput = z.infer<typeof imessageSendChatActionInputSchema>\nexport type ImessageSetReactionInput = z.infer<typeof imessageSetReactionInputSchema>\nexport type ImessageUnsendInput = z.infer<typeof imessageUnsendInputSchema>\nexport type ImessageReadInput = z.infer<typeof imessageReadInputSchema>\nexport type ImessageClearReactionInput = z.infer<typeof imessageClearReactionInputSchema>\nexport type ImessageSendMediaInput = z.infer<typeof imessageSendMediaInputSchema>\nexport type ImessageDownloadFileInput = z.infer<typeof imessageDownloadFileInputSchema>\nexport type ImessageDownloadFileOutput = z.infer<typeof imessageDownloadFileOutputSchema>\nexport type ImessageEnsureChatInput = z.infer<typeof imessageEnsureChatInputSchema>\nexport type ImessageEnsureChatOutput = z.infer<typeof imessageEnsureChatOutputSchema>\n","/**\n * photon-rest-proxy response parse + failure helpers (no HTTP).\n */\n\nimport { isPlainObject, isString } from 'es-toolkit'\n\nimport { ToolError } from '../../core/errors'\nimport { base64ToBytes } from '../../shared/bytes'\nimport type {\n\tImessageDownloadFileInput,\n\tImessageDownloadFileOutput,\n\tImessageEnsureChatOutput,\n\tImessageMessageOutput,\n\tImessageSendMediaInput\n} from './contracts'\nimport { MAX_MEDIA_BYTES } from './contracts'\n\nexport type ImessageFailureKind = 'definite_rejection' | 'outcome_unknown'\n\nexport class ImessageClientError extends ToolError {\n\treadonly failureKind: ImessageFailureKind\n\n\tconstructor(input: {\n\t\tmessage: string\n\t\tfailureKind: ImessageFailureKind\n\t\tstatus?: number\n\t\tcode?: string\n\t\tcause?: unknown\n\t}) {\n\t\tsuper(input.message, {\n\t\t\tcode: mapStatusToToolCode(input.status, input.code),\n\t\t\tretryable: input.failureKind === 'outcome_unknown',\n\t\t\tcause: input.cause,\n\t\t\tdetails: {\n\t\t\t\tfailure_kind: input.failureKind,\n\t\t\t\tstatus: input.status,\n\t\t\t\tproxy_error: input.code\n\t\t\t}\n\t\t})\n\t\tthis.name = 'ImessageClientError'\n\t\tthis.failureKind = input.failureKind\n\t}\n}\n\nexport function isImessageDefiniteRejection(error: unknown): boolean {\n\treturn error instanceof ImessageClientError && error.failureKind === 'definite_rejection'\n}\n\nexport function isImessageOutcomeUnknown(error: unknown): boolean {\n\treturn error instanceof ImessageClientError && error.failureKind === 'outcome_unknown'\n}\n\nfunction mapStatusToToolCode(status: number | undefined, proxyCode: string | undefined): ToolError['code'] {\n\tif (status === 401) return 'bad_auth'\n\tif (status === 403) return 'forbidden'\n\tif (status === 404) return 'not_found'\n\tif (status === 400) return 'bad_input'\n\tif (status === 429) return 'rate_limited'\n\tif (proxyCode === 'unauthorized') return 'bad_auth'\n\tif (proxyCode === 'message_not_found' || proxyCode === 'not_found') return 'not_found'\n\tif (proxyCode === 'unsupported' || proxyCode === 'not_implemented') return 'unsupported'\n\treturn 'upstream'\n}\n\nfunction isDefiniteStatus(status: number): boolean {\n\treturn status === 400 || status === 401 || status === 403 || status === 404\n}\n\n/** Parse photon-rest-proxy JSON error body or throw on non-2xx. */\nexport function assertProxyOk(label: string, status: number, data: unknown): void {\n\tif (status >= 200 && status < 300) return\n\n\tlet message = `${label} failed with HTTP ${status}`\n\tlet code: string | undefined\n\tif (isPlainObject(data)) {\n\t\tconst err = data['error']\n\t\tconst detail = data['detail']\n\t\tif (isString(err) && err.length > 0) {\n\t\t\tcode = err\n\t\t\tmessage = isString(detail) && detail.length > 0 ? `${err}: ${detail}` : err\n\t\t} else if (isString(detail) && detail.length > 0) {\n\t\t\tmessage = detail\n\t\t}\n\t}\n\n\tthrow new ImessageClientError({\n\t\tmessage,\n\t\tfailureKind: isDefiniteStatus(status) ? 'definite_rejection' : 'outcome_unknown',\n\t\tstatus,\n\t\t...(code && { code })\n\t})\n}\n\nfunction requireString(data: Record<string, unknown>, key: string, label: string): string {\n\tconst value = data[key]\n\tif (!isString(value) || value.length === 0) {\n\t\tthrow new ToolError(`iMessage proxy ${label} missing ${key}`, { code: 'upstream' })\n\t}\n\treturn value\n}\n\n/** Prefer space_id; accept chat_id alias from newer proxy shapes. */\nfunction spaceOrChatId(data: Record<string, unknown>, label: string): string {\n\tconst spaceId = data['space_id']\n\tif (isString(spaceId) && spaceId.length > 0) return spaceId\n\tconst chatId = data['chat_id']\n\tif (isString(chatId) && chatId.length > 0) return chatId\n\tthrow new ToolError(`iMessage proxy ${label} missing space_id`, { code: 'upstream' })\n}\n\nexport function parseMessageResult(data: unknown, label = 'send'): ImessageMessageOutput {\n\tif (!isPlainObject(data) || data['ok'] !== true) {\n\t\tthrow new ToolError(`iMessage proxy returned an unexpected ${label} payload`, { code: 'upstream' })\n\t}\n\treturn {\n\t\tspace_id: spaceOrChatId(data, label),\n\t\tmessage_id: requireString(data, 'message_id', label)\n\t}\n}\n\nexport function parseOkResult(data: unknown): { ok: true; space_id?: string } {\n\tif (!isPlainObject(data) || data['ok'] !== true) {\n\t\tthrow new ToolError('iMessage proxy returned an unexpected ok payload', { code: 'upstream' })\n\t}\n\tconst spaceId = data['space_id']\n\tconst chatId = data['chat_id']\n\tconst id =\n\t\tisString(spaceId) && spaceId.length > 0 ? spaceId : isString(chatId) && chatId.length > 0 ? chatId : undefined\n\treturn {\n\t\tok: true,\n\t\t...(id && { space_id: id })\n\t}\n}\n\nexport function parseEnsureChatResult(data: unknown): ImessageEnsureChatOutput {\n\tif (!isPlainObject(data) || data['ok'] !== true) {\n\t\tthrow new ToolError('iMessage proxy returned an unexpected ensure-chat payload', { code: 'upstream' })\n\t}\n\tconst chatId = spaceOrChatId(data, 'ensure-chat')\n\tconst messageId = data['message_id']\n\treturn {\n\t\tchat_id: chatId,\n\t\t...(isString(messageId) && messageId.length > 0 && { message_id: messageId })\n\t}\n}\n\n/** Map messaging-style chat_id to proxy space_id body fields. */\nexport function spaceBody(\n\tchatId: string | undefined,\n\tphone: string | undefined,\n\textra: Record<string, unknown> = {}\n): Record<string, unknown> {\n\treturn {\n\t\tplatform: 'imessage',\n\t\t...extra,\n\t\t...(chatId && { space_id: chatId }),\n\t\t...(phone && { phone })\n\t}\n}\n\n/** Decode and size-check media base64 for sendMedia. */\nexport function decodeMediaBody(bodyBase64: string): void {\n\tlet bytes: Uint8Array\n\ttry {\n\t\tbytes = base64ToBytes(bodyBase64)\n\t} catch (error) {\n\t\tthrow new ToolError('Invalid base64 body', { code: 'bad_input', cause: error })\n\t}\n\tif (bytes.byteLength === 0) {\n\t\tthrow new ToolError('Media body must not be empty', { code: 'bad_input' })\n\t}\n\tif (bytes.byteLength > MAX_MEDIA_BYTES) {\n\t\tthrow new ToolError('Media exceeds 20 MiB limit', {\n\t\t\tcode: 'too_large',\n\t\t\tdetails: { max_bytes: MAX_MEDIA_BYTES, content_length: bytes.byteLength }\n\t\t})\n\t}\n}\n\n/** Build POST /v1/media JSON body (base64 already validated). */\nexport function mediaBody(input: ImessageSendMediaInput, phone: string | undefined): Record<string, unknown> {\n\tdecodeMediaBody(input.body_base64)\n\treturn spaceBody(input.chat_id, phone, {\n\t\tbody_base64: input.body_base64,\n\t\tfile_name: input.file_name,\n\t\t...(input.content_type && { mime_type: input.content_type }),\n\t\t...(input.caption && { caption: input.caption })\n\t})\n}\n\nexport function parseDownloadResult(input: ImessageDownloadFileInput, data: unknown): ImessageDownloadFileOutput {\n\tif (!isPlainObject(data) || data['ok'] !== true) {\n\t\tthrow new ToolError('iMessage proxy returned an unexpected download payload', { code: 'upstream' })\n\t}\n\tconst bodyBase64 = data['body_base64']\n\tif (!isString(bodyBase64) || bodyBase64.length === 0) {\n\t\tthrow new ToolError('iMessage proxy download missing body_base64', { code: 'upstream' })\n\t}\n\tconst name = data['file_name']\n\tconst size = data['file_size']\n\treturn {\n\t\tfile_name: input.file_name ?? (isString(name) && name.length > 0 ? name : input.file_id),\n\t\t...(typeof size === 'number' && Number.isFinite(size) && { file_size: size }),\n\t\tbody_base64: bodyBase64\n\t}\n}\n","/**\n * iMessage vendor client via hosted photon-rest-proxy (REST → Spectrum gRPC).\n * Host: `new ImessageClient(auth)`. Agent tools: `fromContext(ctx)`.\n *\n * Workers-safe: only HTTP to the proxy. No Photon SDK / gRPC in this package.\n */\n\nimport { isPlainObject, isString } from 'es-toolkit'\n\nimport { ToolError } from '../../core/errors'\nimport { requireAuth } from '../../core/provider'\nimport type { ToolContext } from '../../core/types'\nimport { HttpService } from '../../transport/http-service'\nimport type { HttpServiceOptions } from '../../transport/http-service'\nimport type {\n\tImessageAuth,\n\tImessageClearReactionInput,\n\tImessageDownloadFileInput,\n\tImessageDownloadFileOutput,\n\tImessageEditTextInput,\n\tImessageEnsureChatInput,\n\tImessageEnsureChatOutput,\n\tImessageMessageOutput,\n\tImessageReadInput,\n\tImessageSendChatActionInput,\n\tImessageSendMediaInput,\n\tImessageSendTextInput,\n\tImessageSetReactionInput,\n\tImessageUnsendInput\n} from './contracts'\nimport { imessageAuthSchema } from './contracts'\nimport {\n\tassertProxyOk,\n\tisImessageDefiniteRejection,\n\tisImessageOutcomeUnknown,\n\tImessageClientError,\n\tmediaBody,\n\tparseDownloadResult,\n\tparseEnsureChatResult,\n\tparseMessageResult,\n\tparseOkResult,\n\tspaceBody\n} from './domain'\n\nexport type ImessageClientOptions = Pick<HttpServiceOptions, 'fetch' | 'signal'>\n\nexport class ImessageClient {\n\treadonly #http: HttpService\n\treadonly #defaultPhone: string | undefined\n\n\tconstructor(auth: ImessageAuth, options: ImessageClientOptions = {}) {\n\t\tconst parsed = imessageAuthSchema.safeParse(auth)\n\t\tif (!parsed.success) {\n\t\t\tthrow new ToolError('Invalid iMessage auth credentials', {\n\t\t\t\tcode: 'bad_auth',\n\t\t\t\tdetails: { issues: parsed.error.issues.map((issue) => issue.message) }\n\t\t\t})\n\t\t}\n\t\tconst { base_url, project_id, project_secret, phone } = parsed.data\n\t\tthis.#defaultPhone = phone\n\t\tthis.#http = new HttpService({\n\t\t\t...options,\n\t\t\tbaseURL: base_url,\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t'x-spectrum-project-id': project_id,\n\t\t\t\t'x-spectrum-project-secret': project_secret\n\t\t\t},\n\t\t\tlabel: 'iMessage'\n\t\t})\n\t}\n\n\tstatic fromContext(ctx: ToolContext): ImessageClient {\n\t\tconst auth = requireAuth(ctx, imessageAuthSchema)\n\t\treturn new ImessageClient(auth, {\n\t\t\t...(ctx.fetch && { fetch: ctx.fetch }),\n\t\t\t...(ctx.signal && { signal: ctx.signal })\n\t\t})\n\t}\n\n\t#phone(override: string | undefined): string | undefined {\n\t\treturn override ?? this.#defaultPhone\n\t}\n\n\tasync #post(path: string, body: Record<string, unknown>, label: string): Promise<unknown> {\n\t\tconst res = await this.#http.post(path, body, { label, noThrow: true })\n\t\tassertProxyOk(label, res.status, res.data)\n\t\treturn res.data\n\t}\n\n\t/**\n\t * Create a chat (1:1 or group). Host-only; not an agent tool.\n\t * Proxy: POST /v1/ensure-chat (fill on proxy if not yet shipped).\n\t */\n\tasync ensureChat(input: ImessageEnsureChatInput): Promise<ImessageEnsureChatOutput> {\n\t\tconst data = await this.#post(\n\t\t\t'/v1/ensure-chat',\n\t\t\tspaceBody(undefined, this.#phone(input.phone), {\n\t\t\t\taddresses: input.addresses,\n\t\t\t\t...(input.message && { message: input.message }),\n\t\t\t\t...(input.client_message_id && { client_message_id: input.client_message_id })\n\t\t\t}),\n\t\t\t'iMessage ensureChat'\n\t\t)\n\t\treturn parseEnsureChatResult(data)\n\t}\n\n\t/** POST /v1/send */\n\tasync sendText(input: ImessageSendTextInput): Promise<ImessageMessageOutput> {\n\t\tconst data = await this.#post(\n\t\t\t'/v1/send',\n\t\t\tspaceBody(input.chat_id, this.#phone(input.phone), { text: input.text }),\n\t\t\t'iMessage send'\n\t\t)\n\t\treturn parseMessageResult(data, 'send')\n\t}\n\n\t/** POST /v1/edit */\n\tasync editText(input: ImessageEditTextInput): Promise<ImessageMessageOutput> {\n\t\tconst data = await this.#post(\n\t\t\t'/v1/edit',\n\t\t\tspaceBody(input.chat_id, this.#phone(input.phone), {\n\t\t\t\tmessage_id: input.message_id,\n\t\t\t\ttext: input.text\n\t\t\t}),\n\t\t\t'iMessage edit'\n\t\t)\n\t\t// Prefer full message payload; fall back to ok + input message_id when proxy only returns ok.\n\t\tif (isPlainObject(data) && data['ok'] === true && isString(data['message_id']) && data['message_id'].length > 0) {\n\t\t\treturn parseMessageResult(data, 'edit')\n\t\t}\n\t\tconst ok = parseOkResult(data)\n\t\treturn {\n\t\t\tspace_id: ok.space_id ?? input.chat_id,\n\t\t\tmessage_id: input.message_id\n\t\t}\n\t}\n\n\t/**\n\t * POST /v1/typing.\n\t * Non-typing chat actions map to typing start (presentation parity with other channels).\n\t */\n\tasync sendChatAction(input: ImessageSendChatActionInput): Promise<void> {\n\t\tawait this.#post(\n\t\t\t'/v1/typing',\n\t\t\tspaceBody(input.chat_id, this.#phone(input.phone), { action: 'start' }),\n\t\t\t'iMessage typing'\n\t\t)\n\t}\n\n\t/** Stop typing indicator. */\n\tasync stopTyping(input: { chat_id: string; phone?: string }): Promise<void> {\n\t\tawait this.#post(\n\t\t\t'/v1/typing',\n\t\t\tspaceBody(input.chat_id, this.#phone(input.phone), { action: 'stop' }),\n\t\t\t'iMessage typing stop'\n\t\t)\n\t}\n\n\t/** POST /v1/react — returns reaction/message guid for journaling. */\n\tasync setReaction(input: ImessageSetReactionInput): Promise<ImessageMessageOutput> {\n\t\tconst data = await this.#post(\n\t\t\t'/v1/react',\n\t\t\tspaceBody(input.chat_id, this.#phone(input.phone), {\n\t\t\t\tmessage_id: input.message_id,\n\t\t\t\temoji: input.emoji\n\t\t\t}),\n\t\t\t'iMessage react'\n\t\t)\n\t\treturn parseMessageResult(data, 'react')\n\t}\n\n\t/**\n\t * POST /v1/clear-reaction.\n\t * Package contract: target message_id + emoji (same as setReaction).\n\t * Proxy should clear by target+emoji; older proxies that only accept reaction message ids need a gap fill.\n\t */\n\tasync clearReaction(input: ImessageClearReactionInput): Promise<void> {\n\t\tawait this.#post(\n\t\t\t'/v1/clear-reaction',\n\t\t\tspaceBody(input.chat_id, this.#phone(input.phone), {\n\t\t\t\tmessage_id: input.message_id,\n\t\t\t\temoji: input.emoji\n\t\t\t}),\n\t\t\t'iMessage clearReaction'\n\t\t)\n\t}\n\n\t/** POST /v1/unsend */\n\tasync unsend(input: ImessageUnsendInput): Promise<void> {\n\t\tawait this.#post(\n\t\t\t'/v1/unsend',\n\t\t\tspaceBody(input.chat_id, this.#phone(input.phone), { message_id: input.message_id }),\n\t\t\t'iMessage unsend'\n\t\t)\n\t}\n\n\t/** POST /v1/read */\n\tasync read(input: ImessageReadInput): Promise<void> {\n\t\tawait this.#post(\n\t\t\t'/v1/read',\n\t\t\tspaceBody(input.chat_id, this.#phone(input.phone), {\n\t\t\t\t...(input.message_id && { message_id: input.message_id })\n\t\t\t}),\n\t\t\t'iMessage read'\n\t\t)\n\t}\n\n\t/** POST /v1/media */\n\tasync sendMedia(input: ImessageSendMediaInput): Promise<ImessageMessageOutput> {\n\t\tconst data = await this.#post('/v1/media', mediaBody(input, this.#phone(input.phone)), 'iMessage sendMedia')\n\t\treturn parseMessageResult(data, 'media')\n\t}\n\n\t/**\n\t * POST /v1/download.\n\t * Prefer attachment guid alone; pass chat_id when the proxy still requires a space.\n\t */\n\tasync downloadFile(input: ImessageDownloadFileInput): Promise<ImessageDownloadFileOutput> {\n\t\tconst data = await this.#post(\n\t\t\t'/v1/download',\n\t\t\tspaceBody(input.chat_id, this.#phone(input.phone), { file_id: input.file_id }),\n\t\t\t'iMessage downloadFile'\n\t\t)\n\t\treturn parseDownloadResult(input, data)\n\t}\n\n\tasync answerCallback(_input: unknown): Promise<void> {\n\t\t// No interactive callbacks on iMessage.\n\t}\n}\n\nexport { isImessageDefiniteRejection, isImessageOutcomeUnknown, ImessageClientError }\n","import { defineModule, defineTool } from '../../core/define'\nimport { ImessageClient } from './client'\nimport {\n\timessageAuthSchema,\n\timessageClearReactionInputSchema,\n\timessageDownloadFileInputSchema,\n\timessageDownloadFileOutputSchema,\n\timessageEditTextInputSchema,\n\timessageMessageOutputSchema,\n\timessageOkOutputSchema,\n\timessageReadInputSchema,\n\timessageSendChatActionInputSchema,\n\timessageSendMediaInputSchema,\n\timessageSendTextInputSchema,\n\timessageSetReactionInputSchema,\n\timessageUnsendInputSchema\n} from './contracts'\n\nexport const imessageSendTextTool = defineTool({\n\tid: 'imessage-send-text',\n\tname: 'imessageSendText',\n\tdescription:\n\t\t'Send a text message to an iMessage chat. chat_id is the chat guid (e.g. any;-;+1555…). Returns message_id (guid) for later edits, reactions, or unsend.',\n\tinputSchema: imessageSendTextInputSchema,\n\toutputSchema: imessageMessageOutputSchema,\n\tsideEffect: 'send',\n\truntime: 'both',\n\tnetwork: true,\n\texecute: async (input, ctx) => ImessageClient.fromContext(ctx).sendText(input)\n})\n\nexport const imessageEditTextTool = defineTool({\n\tid: 'imessage-edit-text',\n\tname: 'imessageEditText',\n\tdescription: 'Edit the text of a previously sent iMessage. Requires chat guid and message guid.',\n\tinputSchema: imessageEditTextInputSchema,\n\toutputSchema: imessageMessageOutputSchema,\n\tsideEffect: 'write',\n\truntime: 'both',\n\tnetwork: true,\n\texecute: async (input, ctx) => ImessageClient.fromContext(ctx).editText(input)\n})\n\nexport const imessageSendChatActionTool = defineTool({\n\tid: 'imessage-send-chat-action',\n\tname: 'imessageSendChatAction',\n\tdescription: 'Show a typing indicator in an iMessage chat while a response is being prepared.',\n\tinputSchema: imessageSendChatActionInputSchema,\n\toutputSchema: imessageOkOutputSchema,\n\tsideEffect: 'none',\n\truntime: 'both',\n\tnetwork: true,\n\texecute: async (input, ctx) => {\n\t\tawait ImessageClient.fromContext(ctx).sendChatAction(input)\n\t\treturn { ok: true, space_id: input.chat_id }\n\t}\n})\n\nexport const imessageSetReactionTool = defineTool({\n\tid: 'imessage-set-reaction',\n\tname: 'imessageSetReaction',\n\tdescription:\n\t\t'React to an iMessage with a tapback (love, like, dislike, laugh, emphasize, question) or free emoji. Returns a message guid for journaling. To clear, call clear-reaction with the same target message_id and emoji.',\n\tinputSchema: imessageSetReactionInputSchema,\n\toutputSchema: imessageMessageOutputSchema,\n\tsideEffect: 'write',\n\truntime: 'both',\n\tnetwork: true,\n\texecute: async (input, ctx) => ImessageClient.fromContext(ctx).setReaction(input)\n})\n\nexport const imessageClearReactionTool = defineTool({\n\tid: 'imessage-clear-reaction',\n\tname: 'imessageClearReaction',\n\tdescription:\n\t\t'Clear an iMessage reaction. message_id is the target message that was reacted to; emoji must match set-reaction (tapback name or emoji character).',\n\tinputSchema: imessageClearReactionInputSchema,\n\toutputSchema: imessageOkOutputSchema,\n\tsideEffect: 'delete',\n\truntime: 'both',\n\tnetwork: true,\n\texecute: async (input, ctx) => {\n\t\tawait ImessageClient.fromContext(ctx).clearReaction(input)\n\t\treturn { ok: true, space_id: input.chat_id }\n\t}\n})\n\nexport const imessageUnsendTool = defineTool({\n\tid: 'imessage-unsend',\n\tname: 'imessageUnsend',\n\tdescription: 'Unsend a previously sent iMessage using its chat guid and message guid.',\n\tinputSchema: imessageUnsendInputSchema,\n\toutputSchema: imessageOkOutputSchema,\n\tsideEffect: 'delete',\n\truntime: 'both',\n\tnetwork: true,\n\texecute: async (input, ctx) => {\n\t\tawait ImessageClient.fromContext(ctx).unsend(input)\n\t\treturn { ok: true, space_id: input.chat_id }\n\t}\n})\n\nexport const imessageReadTool = defineTool({\n\tid: 'imessage-read',\n\tname: 'imessageRead',\n\tdescription: 'Mark an iMessage conversation as read (whole chat).',\n\tinputSchema: imessageReadInputSchema,\n\toutputSchema: imessageOkOutputSchema,\n\tsideEffect: 'write',\n\truntime: 'both',\n\tnetwork: true,\n\texecute: async (input, ctx) => {\n\t\tawait ImessageClient.fromContext(ctx).read(input)\n\t\treturn { ok: true, space_id: input.chat_id }\n\t}\n})\n\nexport const imessageSendMediaTool = defineTool({\n\tid: 'imessage-send-media',\n\tname: 'imessageSendMedia',\n\tdescription:\n\t\t'Upload and send one photo or document to an iMessage chat from base64 bytes. Optional caption is sent as a follow-up text message.',\n\tinputSchema: imessageSendMediaInputSchema,\n\toutputSchema: imessageMessageOutputSchema,\n\tsideEffect: 'send',\n\truntime: 'both',\n\tnetwork: true,\n\texecute: async (input, ctx) => ImessageClient.fromContext(ctx).sendMedia(input)\n})\n\nexport const imessageDownloadFileTool = defineTool({\n\tid: 'imessage-download-file',\n\tname: 'imessageDownloadFile',\n\tdescription: 'Download attachment bytes by attachment guid (file_id from inbound or upload).',\n\tinputSchema: imessageDownloadFileInputSchema,\n\toutputSchema: imessageDownloadFileOutputSchema,\n\tsideEffect: 'none',\n\truntime: 'both',\n\tnetwork: true,\n\texecute: async (input, ctx) => ImessageClient.fromContext(ctx).downloadFile(input)\n})\n\nexport const imessageModule = defineModule({\n\tid: 'imessage',\n\ttitle: 'iMessage',\n\tdescription:\n\t\t'iMessage tools for sending and editing text or media, typing indicators, reactions, unsend, read state, and attachment download via a bound photon-rest-proxy.',\n\truntime: 'both',\n\tauth: { type: 'custom', schema: imessageAuthSchema },\n\tcategories: ['messaging', 'chat'],\n\tclassification: 'pii',\n\ttags: ['imessage', 'photon'],\n\ttools: [\n\t\timessageSendTextTool,\n\t\timessageEditTextTool,\n\t\timessageSendChatActionTool,\n\t\timessageSetReactionTool,\n\t\timessageClearReactionTool,\n\t\timessageUnsendTool,\n\t\timessageReadTool,\n\t\timessageSendMediaTool,\n\t\timessageDownloadFileTool\n\t]\n})\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index-ByHp3nZm.d.ts","names":[],"sources":["../src/vendors/_storage/schemas.ts","../src/vendors/s3/contracts.ts","../src/vendors/s3/client.ts","../src/vendors/s3/module.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index-ByHp3nZm.d.ts","names":[],"sources":["../src/vendors/_storage/schemas.ts","../src/vendors/s3/contracts.ts","../src/vendors/s3/client.ts","../src/vendors/s3/module.ts"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index-CZX5OeOF.d.ts","names":[],"sources":["../src/core/filter-tools.ts","../src/core/hooks.ts","../src/core/bind.ts","../src/core/context.ts","../src/core/contracts.ts","../src/core/catalog.ts","../src/core/define.ts","../src/generated/pack-logos.ts","../src/core/provider.ts","../src/core/resolve-tools.ts","../src/core/unique.ts","../src/core/with-auth.ts"],"mappings":";;;;;;;KAYY;EAAkB;EAAyB;;EAAqB;EAA2B;;;KAG3F,eAAe;;KAGf,kBAAkB,QAAQ;EAAiB;;;KAG3C,oBAAoB,QAAQ;EAAiB;;;KAG7C,aAAa,UAAU,oBAAoB;;;;;iBAuCvC,UAAU,aAAa,6BACtC,QAAQ,iBAAiB,QACzB,cAAc,QACZ,iBAAiB;;;;;iBAsBJ,YAAY,aAAa,6BACxC,QAAQ,iBAAiB,QACzB,cAAc,QACZ,iBAAiB;;iBAWJ,kBAAkB,OACjC,QAAQ,iBAAiB,QACzB,WAAW,gBACT,iBAAiB;;;iBCnGJ,cAAc,QAAQ,SACrC,MAAM,eAAe,QAAQ,UAC7B,OAAO,YACL,eAAe,QAAQ;iBAQV,UAAU,OAAO,QAAQ,iBAAiB,QAAQ,OAAO,YAAY,iBAAiB;iBAItF,QAAQ,MAAM,kBAAkB;;;KCKpC,kBAAkB;EAC7B,eAAe,KAAK,gBAAgB,QAAQ,QAAQ;EACpD,kBAAkB,KAAK,gBAAgB,cAAc,QAAQ;EAC7D,QAAQ;;;;;EAKR,QAAQ;;iBAsBO,SAAS,QAAQ,SAAS,iBACzC,MAAM,eAAe,QAAQ,UAC7B,YAAY,eAAe,QAC3B,SAAS,kBAAkB,SACzB,eAAe,QAAQ;iBAkBV,WAAW,OAC1B,QAAQ,iBAAiB,QACzB,SAAS,kBAAkB,SACzB,iBAAiB;;;;;;;;iBCtEJ,iBAAiB,MAAM,aAAa,UAAS,cAAmB;;;KCapE;EACX;EAOA;EACA;;KAGW;EACX;EACA,QAAQ;;KAGG;;EAEX;;iBAmFe,aACf,MAAM,gBACN,qBACA,UAAS,wBACP;iBAea,eAAe,QAAQ,mBAAmB;iBAkB1C,gBAAgB,QAAQ,gBAAgB;;;KC/J5C;EACX;EACA;EACA,iBAAiB;EACjB;EACA,kBAAkB;EAClB,SAAS;EACT,YAAY;EACZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;KAGW;EACX,UAAU;EACV;EACA;EACA,SAAS;EACT;EACA,OAAO;;EAEP;EACA;EACA,iBAAiB;EACjB;;iBAGe,mBAAmB,MAAM,iBAAiB;iBAoB1C,qBAAqB,QAAQ,mBAAmB;;;KC5CpD,kBAAkB,QAAQ;EACrC;EACA;EACA,aAAa,eAAe,QAAQ;EACpC;EACA,cAAc,eAAe,QAAQ;EACrC,UAAU;EACV,aAAa;EACb;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,UAAU,OAAO,QAAQ,KAAK,gBAAgB,QAAQ;;iBAGvC,WAAW,QAAQ,SAClC,SAAS,kBAAkB,QAAQ,WACjC,eAAe,QAAQ;;iBAsCV,UAAU,QAAQ,SAAS,MAAM,eAAe,QAAQ,WAAW;KAIvE,oBAAoB;EAC/B,OAAO,eAAe;EACtB;EACA;EACA,UAAU;EACV;EACA,gBAAgB;;EAEhB;;;;;EAKA;;EAEA,iBAAiB;;EAEjB;;iBAGe,aAAa,iBAAiB,SAAS,oBAAoB,SAAS,iBAAiB;;;;cCjBxF,qBAAqB,SAAS;iBA6C3B,gBAAgB;;;;;;;;KClHpB,mBAAmB,6BAA6B,iBAAiB;EAC5E,IAAI;EACJ;EACA,YAAY,EAAE,QAAQ;EACtB,KAAK;;KAGM;EACX;;iBAGe,qBAAqB,oBAAoB;EAAgB,UAAU;GAAO,MAAM;EAC/F,IAAI;EACJ;EACA,YAAY,EAAE,QAAQ;EACtB,KAAK;IACF,mBAAmB,KAAK,OAAO;;iBAgBnB,gBAAgB,UAAU,oBAAoB,oBAAoB,KAAK,MAAM,mBAAmB;;iBAYhG,YAAY,OAAO,KAAK,aAAa,QAAQ,EAAE,QAAQ,SAAS;;;iBCpDhE,YAAY,QAAQ,aAAa,mBAAmB;;iBAKpD,aAAa,QAAQ,sBAAsB;iBAI3C,qBAAqB,gBAAgB,kBAAkB,2BAA2B;;;;iBCRlF,aAAa,GAAG,gBAAgB,KAAK,KAAK,MAAM;;iBAKhD,iBAAiB,GAAG,gBAAgB,KAAK,KAAK,MAAM;;iBAKpD,eAAe,GAC9B,gBAAgB,KAChB,KAAK,MAAM,cACX,UAAU;;;iBCMK,aAAa,QAAQ,SACpC,MAAM,eAAe,QAAQ,UAC7B,gBACE,eAAe,QAAQ;KAoBd;;;;;EAKX,QAAQ;;iBAGO,SAAS,OACxB,QAAQ,iBAAiB,QACzB,OAAO,OACP,UAAS,kBACP,iBAAiB;KAYf,aAAa,QAAQ;EACzB;EACA;EACA;EACA,OAAO;EACP,YAAY;EACZ,aAAa,eAAe,QAAQ;EACpC,cAAc,eAAe,QAAQ;EACrC,UAAU,gBAAgB,KAAK,gBAAgB;;;iBAI1B,QAAQ,QAAQ,SACrC,MAAM,aAAa,QAAQ,UAC3B,OAAO,QACP,MAAK,cACH,QAAQ;iBAkDK,UAAU,QAAQ,4BAA4B"}
1
+ {"version":3,"file":"index-CZX5OeOF.d.ts","names":[],"sources":["../src/core/filter-tools.ts","../src/core/hooks.ts","../src/core/bind.ts","../src/core/context.ts","../src/core/contracts.ts","../src/core/catalog.ts","../src/core/define.ts","../src/generated/pack-logos.ts","../src/core/provider.ts","../src/core/resolve-tools.ts","../src/core/unique.ts","../src/core/with-auth.ts"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { t as ToolError } from "./errors-DoSpNHvs.js";
2
- import { n as defineModule, r as defineTool } from "./define-DdFALdNf.js";
2
+ import { n as defineModule, r as defineTool } from "./define-CbQI8dAN.js";
3
3
  import { n as requireAuth } from "./provider-CgDAlg6K.js";
4
4
  import { S as requireCollection, _ as parseMetadata, a as deleteVectorsOutputSchema, c as upsertVectorsInputSchema, g as mergeVectorFilter, i as deleteVectorsInputSchema, l as upsertVectorsOutputSchema, o as queryVectorsInputSchema, s as queryVectorsOutputSchema, u as vectorDefaultFilterSchema, w as stampDefaultFilterMetadata } from "./schemas-ChOAhdo9.js";
5
5
  import { isNumber, isPlainObject, isString } from "es-toolkit";
@@ -231,4 +231,4 @@ const mastraVectorModule = defineModule({
231
231
  //#endregion
232
232
  export { MastraVectorClient as a, mastraVectorUpsertTool as i, mastraVectorModule as n, mastraVectorAuthSchema as o, mastraVectorQueryTool as r, mastraVectorDeleteTool as t };
233
233
 
234
- //# sourceMappingURL=mastra-vector-qKG3L-Rw.js.map
234
+ //# sourceMappingURL=mastra-vector-BillORtZ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mastra-vector-qKG3L-Rw.js","names":["#store","#defaultIndex","#defaultFilter","#dimension","#autoCreateIndex","#ownsStore","#ensureIndex"],"sources":["../src/vendors/mastra-vector/contracts.ts","../src/vendors/mastra-vector/client.ts","../src/vendors/mastra-vector/module.ts"],"sourcesContent":["import { z } from 'zod'\n\nimport { vectorDefaultFilterSchema } from '../_vector'\n\nexport {\n\tMAX_TOP_K,\n\tMAX_VECTOR_BATCH,\n\tMAX_VECTOR_DIMENSIONS,\n\tdeleteVectorsInputSchema,\n\tdeleteVectorsOutputSchema,\n\tqueryVectorsInputSchema,\n\tqueryVectorsOutputSchema,\n\tupsertVectorsInputSchema,\n\tupsertVectorsOutputSchema,\n\tvectorMatchSchema,\n\tvectorMetadataSchema,\n\tvectorPointSchema\n} from '../_vector'\nexport type {\n\tDeleteVectorsInput,\n\tDeleteVectorsOutput,\n\tQueryVectorsInput,\n\tQueryVectorsOutput,\n\tUpsertVectorsInput,\n\tUpsertVectorsOutput,\n\tVectorMatch,\n\tVectorMetadata,\n\tVectorPoint\n} from '../_vector'\n\n/**\n * Mastra PgVector auth (`@mastra/pg`).\n * Host owns Postgres connection + schema; package does not invent org policy.\n */\nexport const mastraVectorAuthSchema = z.object({\n\tconnection_string: z\n\t\t.string()\n\t\t.min(1)\n\t\t.describe('Postgres connection string for Mastra PgVector (e.g. Supabase DB URL)'),\n\tid: z.string().min(1).describe('Mastra vector store id (stable string for this store instance)'),\n\tschema_name: z\n\t\t.string()\n\t\t.min(1)\n\t\t.optional()\n\t\t.describe('Postgres schema for vector tables (e.g. agent); omit for package default'),\n\tdefault_index: z.string().min(1).optional().describe('Default index name when tool input omits collection'),\n\tdimension: z\n\t\t.number()\n\t\t.int()\n\t\t.positive()\n\t\t.optional()\n\t\t.describe('Embedding dimension; required when auto_create_index is true'),\n\tauto_create_index: z\n\t\t.boolean()\n\t\t.optional()\n\t\t.describe('When true, create the index on upsert if missing (needs dimension)'),\n\tdisable_init: z.boolean().optional().describe('Pass disableInit to PgVector (host manages migration/init)'),\n\tdefault_filter: vectorDefaultFilterSchema\n\t\t.optional()\n\t\t.describe(\n\t\t\t'Host-bound metadata filter always applied on query (Mongo-style / Mastra PG filter); flat keys stamped on upsert'\n\t\t)\n})\n\nexport type MastraVectorAuth = z.infer<typeof mastraVectorAuthSchema>\n","/**\n * Mastra PgVector vendor client (`@mastra/pg`).\n * Host: `new MastraVectorClient(auth)`. Agent tools: `fromContext(ctx)`.\n * Runtime: node (Postgres). Optional peer: `@mastra/pg`.\n */\n\nimport { PgVector } from '@mastra/pg'\nimport { isNumber, isPlainObject, isString } from 'es-toolkit'\n\nimport { ToolError } from '../../core/errors'\nimport { requireAuth } from '../../core/provider'\nimport type { ToolContext } from '../../core/types'\nimport { mergeVectorFilter, parseMetadata, requireCollection, stampDefaultFilterMetadata } from '../_vector/domain'\nimport type { VectorDefaultFilter } from '../_vector/domain'\nimport type {\n\tDeleteVectorsInput,\n\tDeleteVectorsOutput,\n\tMastraVectorAuth,\n\tQueryVectorsInput,\n\tQueryVectorsOutput,\n\tUpsertVectorsInput,\n\tUpsertVectorsOutput,\n\tVectorMatch\n} from './contracts'\nimport { mastraVectorAuthSchema } from './contracts'\n\n/** Injected / real store surface (filter is opaque Record for seam compatibility). */\ntype MastraStore = {\n\tupsert: (input: {\n\t\tindexName: string\n\t\tids: string[]\n\t\tvectors: number[][]\n\t\tmetadata: Array<Record<string, unknown>>\n\t}) => Promise<unknown>\n\tquery: (input: {\n\t\tindexName: string\n\t\tqueryVector: number[]\n\t\ttopK?: number\n\t\tincludeVector?: boolean\n\t\tfilter?: Record<string, unknown>\n\t}) => Promise<Array<{ id?: string; score?: number; metadata?: unknown; vector?: number[] }>>\n\tdeleteVectors: (input: { indexName: string; ids: string[] }) => Promise<unknown>\n\tcreateIndex: (input: { indexName: string; dimension: number }) => Promise<unknown>\n\tdisconnect?: () => Promise<void>\n}\n\ntype PgQueryArgs = Parameters<PgVector['query']>[0]\n\n/** Narrow a built arg bag to PgVector query params (Mongo-style filter is structural). */\nfunction isPgQueryArgs(value: unknown): value is PgQueryArgs {\n\treturn (\n\t\tisPlainObject(value) &&\n\t\tisString(value['indexName']) &&\n\t\tvalue['indexName'].length > 0 &&\n\t\tArray.isArray(value['queryVector'])\n\t)\n}\n\nexport type MastraVectorClientOptions = {\n\t/**\n\t * Test injection — production uses PgVector.\n\t * Must implement the same method names as PgVector for upsert/query/deleteVectors/createIndex.\n\t */\n\tstore?: MastraStore\n}\n\nexport class MastraVectorClient {\n\treadonly #store: MastraStore\n\treadonly #defaultIndex: string | undefined\n\treadonly #defaultFilter: VectorDefaultFilter | undefined\n\treadonly #dimension: number | undefined\n\treadonly #autoCreateIndex: boolean\n\treadonly #ownsStore: boolean\n\n\tconstructor(auth: MastraVectorAuth, options: MastraVectorClientOptions = {}) {\n\t\tconst parsed = mastraVectorAuthSchema.safeParse(auth)\n\t\tif (!parsed.success) {\n\t\t\tthrow new ToolError('Invalid Mastra vector auth credentials', {\n\t\t\t\tcode: 'bad_auth',\n\t\t\t\tdetails: { issues: parsed.error.issues.map((issue) => issue.message) }\n\t\t\t})\n\t\t}\n\t\tconst data = parsed.data\n\t\tthis.#defaultIndex = data.default_index\n\t\tthis.#defaultFilter = data.default_filter\n\t\tthis.#dimension = data.dimension\n\t\tthis.#autoCreateIndex = data.auto_create_index === true\n\n\t\tif (options.store) {\n\t\t\tthis.#store = options.store\n\t\t\tthis.#ownsStore = false\n\t\t\treturn\n\t\t}\n\n\t\tconst config: {\n\t\t\tconnectionString: string\n\t\t\tid: string\n\t\t\tschemaName?: string\n\t\t\tdisableInit?: boolean\n\t\t} = {\n\t\t\tconnectionString: data.connection_string,\n\t\t\tid: data.id\n\t\t}\n\t\tif (data.schema_name) config.schemaName = data.schema_name\n\t\tif (data.disable_init === true) config.disableInit = true\n\n\t\tconst pg = new PgVector(config)\n\t\t// Adapt PgVector to opaque Record filters (Mongo-style / flat equality is native).\n\t\tthis.#store = {\n\t\t\tupsert: (input) =>\n\t\t\t\tpg.upsert({\n\t\t\t\t\tindexName: input.indexName,\n\t\t\t\t\tids: input.ids,\n\t\t\t\t\tvectors: input.vectors,\n\t\t\t\t\tmetadata: input.metadata\n\t\t\t\t}),\n\t\t\tquery: (input) => {\n\t\t\t\tconst args: Record<string, unknown> = {\n\t\t\t\t\tindexName: input.indexName,\n\t\t\t\t\tqueryVector: input.queryVector,\n\t\t\t\t\t...(input.topK !== undefined && { topK: input.topK }),\n\t\t\t\t\t...(input.includeVector !== undefined && { includeVector: input.includeVector }),\n\t\t\t\t\t...(input.filter !== undefined && { filter: input.filter })\n\t\t\t\t}\n\t\t\t\tif (!isPgQueryArgs(args)) {\n\t\t\t\t\tthrow new ToolError('Invalid Mastra vector query args', { code: 'internal' })\n\t\t\t\t}\n\t\t\t\treturn pg.query(args)\n\t\t\t},\n\t\t\tdeleteVectors: (input) => pg.deleteVectors({ indexName: input.indexName, ids: input.ids }),\n\t\t\tcreateIndex: (input) => pg.createIndex({ indexName: input.indexName, dimension: input.dimension }),\n\t\t\tdisconnect: () => pg.disconnect()\n\t\t}\n\t\tthis.#ownsStore = true\n\t}\n\n\tstatic fromContext(ctx: ToolContext): MastraVectorClient {\n\t\tconst auth = requireAuth(ctx, mastraVectorAuthSchema)\n\t\treturn new MastraVectorClient(auth)\n\t}\n\n\tasync upsert(input: UpsertVectorsInput): Promise<UpsertVectorsOutput> {\n\t\tconst indexName = requireCollection(input.collection, this.#defaultIndex, 'Mastra vector upsert')\n\t\tawait this.#ensureIndex(indexName, input.vectors[0]?.values.length)\n\n\t\tawait this.#store.upsert({\n\t\t\tindexName,\n\t\t\tids: input.vectors.map((point) => point.id),\n\t\t\tvectors: input.vectors.map((point) => point.values),\n\t\t\tmetadata: input.vectors.map((point) => stampDefaultFilterMetadata(point.metadata, this.#defaultFilter) ?? {})\n\t\t})\n\t\treturn { upserted: input.vectors.length, collection: indexName }\n\t}\n\n\tasync query(input: QueryVectorsInput): Promise<QueryVectorsOutput> {\n\t\tconst indexName = requireCollection(input.collection, this.#defaultIndex, 'Mastra vector query')\n\t\tconst topK = input.top_k ?? 8\n\t\tconst includeVector = input.include_values === true\n\t\tconst filter = mergeVectorFilter(this.#defaultFilter, input.filter)\n\n\t\tconst rows = await this.#store.query({\n\t\t\tindexName,\n\t\t\tqueryVector: input.vector,\n\t\t\ttopK,\n\t\t\tincludeVector,\n\t\t\t...(filter && { filter })\n\t\t})\n\n\t\tconst includeMetadata = input.include_metadata !== false\n\t\tconst matches: VectorMatch[] = []\n\t\tfor (const row of rows) {\n\t\t\tif (!isString(row.id) || row.id.length === 0) continue\n\t\t\tconst score = isNumber(row.score) ? row.score : 0\n\t\t\tconst match: VectorMatch = { id: row.id, score }\n\t\t\tif (includeMetadata && row.metadata !== undefined) {\n\t\t\t\tconst meta = parseMetadata(row.metadata)\n\t\t\t\tif (meta) match.metadata = meta\n\t\t\t}\n\t\t\tif (includeVector && Array.isArray(row.vector)) {\n\t\t\t\tconst values = row.vector.filter((n): n is number => isNumber(n) && Number.isFinite(n))\n\t\t\t\tif (values.length === row.vector.length) match.values = values\n\t\t\t}\n\t\t\tmatches.push(match)\n\t\t}\n\t\treturn { matches, collection: indexName }\n\t}\n\n\tasync delete(input: DeleteVectorsInput): Promise<DeleteVectorsOutput> {\n\t\tconst indexName = requireCollection(input.collection, this.#defaultIndex, 'Mastra vector delete')\n\t\tawait this.#store.deleteVectors({ indexName, ids: input.ids })\n\t\treturn { deleted: input.ids.length, collection: indexName }\n\t}\n\n\tasync disconnect(): Promise<void> {\n\t\tif (this.#ownsStore && this.#store.disconnect) {\n\t\t\tawait this.#store.disconnect()\n\t\t}\n\t}\n\n\tasync #ensureIndex(indexName: string, inferredDimension: number | undefined): Promise<void> {\n\t\tif (!this.#autoCreateIndex) return\n\t\tconst dimension = this.#dimension ?? inferredDimension\n\t\tif (dimension === undefined) {\n\t\t\tthrow new ToolError('Mastra auto_create_index requires dimension on auth or non-empty vectors', {\n\t\t\t\tcode: 'bad_input'\n\t\t\t})\n\t\t}\n\t\ttry {\n\t\t\tawait this.#store.createIndex({ indexName, dimension })\n\t\t} catch (error) {\n\t\t\tconst message = error instanceof Error ? error.message : String(error)\n\t\t\tif (/already exists|duplicate|exist/i.test(message)) return\n\t\t\tthrow new ToolError(`Mastra createIndex failed: ${message}`, {\n\t\t\t\tcode: 'upstream',\n\t\t\t\tcause: error\n\t\t\t})\n\t\t}\n\t}\n}\n","import { defineModule, defineTool } from '../../core/define'\nimport { MastraVectorClient } from './client'\nimport {\n\tdeleteVectorsInputSchema,\n\tdeleteVectorsOutputSchema,\n\tmastraVectorAuthSchema,\n\tqueryVectorsInputSchema,\n\tqueryVectorsOutputSchema,\n\tupsertVectorsInputSchema,\n\tupsertVectorsOutputSchema\n} from './contracts'\n\nexport const mastraVectorUpsertTool = defineTool({\n\tid: 'mastra-vector-upsert',\n\tname: 'mastraVectorUpsert',\n\tdescription: 'Upsert vectors into a Mastra PgVector index. collection maps to indexName.',\n\tinputSchema: upsertVectorsInputSchema,\n\toutputSchema: upsertVectorsOutputSchema,\n\tsideEffect: 'write',\n\truntime: 'node',\n\texecute: async (input, ctx) => MastraVectorClient.fromContext(ctx).upsert(input)\n})\n\nexport const mastraVectorQueryTool = defineTool({\n\tid: 'mastra-vector-query',\n\tname: 'mastraVectorQuery',\n\tdescription: 'Nearest-neighbor query against a Mastra PgVector index.',\n\tinputSchema: queryVectorsInputSchema,\n\toutputSchema: queryVectorsOutputSchema,\n\tsideEffect: 'read',\n\truntime: 'node',\n\texecute: async (input, ctx) => MastraVectorClient.fromContext(ctx).query(input)\n})\n\nexport const mastraVectorDeleteTool = defineTool({\n\tid: 'mastra-vector-delete',\n\tname: 'mastraVectorDelete',\n\tdescription: 'Delete vectors by id from a Mastra PgVector index.',\n\tinputSchema: deleteVectorsInputSchema,\n\toutputSchema: deleteVectorsOutputSchema,\n\tsideEffect: 'delete',\n\truntime: 'node',\n\texecute: async (input, ctx) => MastraVectorClient.fromContext(ctx).delete(input)\n})\n\nexport const mastraVectorModule = defineModule({\n\tid: 'mastra-vector',\n\ttitle: 'Mastra Vector',\n\tdescription:\n\t\t'Mastra PgVector over Postgres: upsert, query, and delete vectors. Index names map from collection. Node runtime.',\n\truntime: 'node',\n\tauth: { type: 'custom', schema: mastraVectorAuthSchema },\n\tcategories: ['ai', 'vector'],\n\tclassification: 'pii',\n\ttags: ['pgvector', 'mastra'],\n\ttools: [mastraVectorUpsertTool, mastraVectorQueryTool, mastraVectorDeleteTool]\n})\n"],"mappings":";;;;;;;;;;;;AAkCA,MAAa,yBAAyB,EAAE,OAAO;CAC9C,mBAAmB,EACjB,OAAO,CAAC,CACR,IAAI,CAAC,CAAC,CACN,SAAS,uEAAuE;CAClF,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,gEAAgE;CAC/F,aAAa,EACX,OAAO,CAAC,CACR,IAAI,CAAC,CAAC,CACN,SAAS,CAAC,CACV,SAAS,0EAA0E;CACrF,eAAe,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,qDAAqD;CAC1G,WAAW,EACT,OAAO,CAAC,CACR,IAAI,CAAC,CACL,SAAS,CAAC,CACV,SAAS,CAAC,CACV,SAAS,8DAA8D;CACzE,mBAAmB,EACjB,QAAQ,CAAC,CACT,SAAS,CAAC,CACV,SAAS,oEAAoE;CAC/E,cAAc,EAAE,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,4DAA4D;CAC1G,gBAAgB,0BACd,SAAS,CAAC,CACV,SACA,kHACD;AACF,CAAC;;;;;;;;;ACbD,SAAS,cAAc,OAAsC;CAC5D,OACC,cAAc,KAAK,KACnB,SAAS,MAAM,YAAY,KAC3B,MAAM,YAAY,CAAC,SAAS,KAC5B,MAAM,QAAQ,MAAM,cAAc;AAEpC;AAUA,IAAa,qBAAb,MAAa,mBAAmB;CAC/B;CACA;CACA;CACA;CACA;CACA;CAEA,YAAY,MAAwB,UAAqC,CAAC,GAAG;EAC5E,MAAM,SAAS,uBAAuB,UAAU,IAAI;EACpD,IAAI,CAAC,OAAO,SACX,MAAM,IAAI,UAAU,0CAA0C;GAC7D,MAAM;GACN,SAAS,EAAE,QAAQ,OAAO,MAAM,OAAO,KAAK,UAAU,MAAM,OAAO,EAAE;EACtE,CAAC;EAEF,MAAM,OAAO,OAAO;EACpB,KAAKC,gBAAgB,KAAK;EAC1B,KAAKC,iBAAiB,KAAK;EAC3B,KAAKC,aAAa,KAAK;EACvB,KAAKC,mBAAmB,KAAK,sBAAsB;EAEnD,IAAI,QAAQ,OAAO;GAClB,KAAKJ,SAAS,QAAQ;GACtB,KAAKK,aAAa;GAClB;EACD;EAEA,MAAM,SAKF;GACH,kBAAkB,KAAK;GACvB,IAAI,KAAK;EACV;EACA,IAAI,KAAK,aAAa,OAAO,aAAa,KAAK;EAC/C,IAAI,KAAK,iBAAiB,MAAM,OAAO,cAAc;EAErD,MAAM,KAAK,IAAI,SAAS,MAAM;EAE9B,KAAKL,SAAS;GACb,SAAS,UACR,GAAG,OAAO;IACT,WAAW,MAAM;IACjB,KAAK,MAAM;IACX,SAAS,MAAM;IACf,UAAU,MAAM;GACjB,CAAC;GACF,QAAQ,UAAU;IACjB,MAAM,OAAgC;KACrC,WAAW,MAAM;KACjB,aAAa,MAAM;KACnB,GAAI,MAAM,SAAS,KAAA,KAAa,EAAE,MAAM,MAAM,KAAK;KACnD,GAAI,MAAM,kBAAkB,KAAA,KAAa,EAAE,eAAe,MAAM,cAAc;KAC9E,GAAI,MAAM,WAAW,KAAA,KAAa,EAAE,QAAQ,MAAM,OAAO;IAC1D;IACA,IAAI,CAAC,cAAc,IAAI,GACtB,MAAM,IAAI,UAAU,oCAAoC,EAAE,MAAM,WAAW,CAAC;IAE7E,OAAO,GAAG,MAAM,IAAI;GACrB;GACA,gBAAgB,UAAU,GAAG,cAAc;IAAE,WAAW,MAAM;IAAW,KAAK,MAAM;GAAI,CAAC;GACzF,cAAc,UAAU,GAAG,YAAY;IAAE,WAAW,MAAM;IAAW,WAAW,MAAM;GAAU,CAAC;GACjG,kBAAkB,GAAG,WAAW;EACjC;EACA,KAAKK,aAAa;CACnB;CAEA,OAAO,YAAY,KAAsC;EACxD,MAAM,OAAO,YAAY,KAAK,sBAAsB;EACpD,OAAO,IAAI,mBAAmB,IAAI;CACnC;CAEA,MAAM,OAAO,OAAyD;EACrE,MAAM,YAAY,kBAAkB,MAAM,YAAY,KAAKJ,eAAe,sBAAsB;EAChG,MAAM,KAAKK,aAAa,WAAW,MAAM,QAAQ,EAAE,EAAE,OAAO,MAAM;EAElE,MAAM,KAAKN,OAAO,OAAO;GACxB;GACA,KAAK,MAAM,QAAQ,KAAK,UAAU,MAAM,EAAE;GAC1C,SAAS,MAAM,QAAQ,KAAK,UAAU,MAAM,MAAM;GAClD,UAAU,MAAM,QAAQ,KAAK,UAAU,2BAA2B,MAAM,UAAU,KAAKE,cAAc,KAAK,CAAC,CAAC;EAC7G,CAAC;EACD,OAAO;GAAE,UAAU,MAAM,QAAQ;GAAQ,YAAY;EAAU;CAChE;CAEA,MAAM,MAAM,OAAuD;EAClE,MAAM,YAAY,kBAAkB,MAAM,YAAY,KAAKD,eAAe,qBAAqB;EAC/F,MAAM,OAAO,MAAM,SAAS;EAC5B,MAAM,gBAAgB,MAAM,mBAAmB;EAC/C,MAAM,SAAS,kBAAkB,KAAKC,gBAAgB,MAAM,MAAM;EAElE,MAAM,OAAO,MAAM,KAAKF,OAAO,MAAM;GACpC;GACA,aAAa,MAAM;GACnB;GACA;GACA,GAAI,UAAU,EAAE,OAAO;EACxB,CAAC;EAED,MAAM,kBAAkB,MAAM,qBAAqB;EACnD,MAAM,UAAyB,CAAC;EAChC,KAAK,MAAM,OAAO,MAAM;GACvB,IAAI,CAAC,SAAS,IAAI,EAAE,KAAK,IAAI,GAAG,WAAW,GAAG;GAC9C,MAAM,QAAQ,SAAS,IAAI,KAAK,IAAI,IAAI,QAAQ;GAChD,MAAM,QAAqB;IAAE,IAAI,IAAI;IAAI;GAAM;GAC/C,IAAI,mBAAmB,IAAI,aAAa,KAAA,GAAW;IAClD,MAAM,OAAO,cAAc,IAAI,QAAQ;IACvC,IAAI,MAAM,MAAM,WAAW;GAC5B;GACA,IAAI,iBAAiB,MAAM,QAAQ,IAAI,MAAM,GAAG;IAC/C,MAAM,SAAS,IAAI,OAAO,QAAQ,MAAmB,SAAS,CAAC,KAAK,OAAO,SAAS,CAAC,CAAC;IACtF,IAAI,OAAO,WAAW,IAAI,OAAO,QAAQ,MAAM,SAAS;GACzD;GACA,QAAQ,KAAK,KAAK;EACnB;EACA,OAAO;GAAE;GAAS,YAAY;EAAU;CACzC;CAEA,MAAM,OAAO,OAAyD;EACrE,MAAM,YAAY,kBAAkB,MAAM,YAAY,KAAKC,eAAe,sBAAsB;EAChG,MAAM,KAAKD,OAAO,cAAc;GAAE;GAAW,KAAK,MAAM;EAAI,CAAC;EAC7D,OAAO;GAAE,SAAS,MAAM,IAAI;GAAQ,YAAY;EAAU;CAC3D;CAEA,MAAM,aAA4B;EACjC,IAAI,KAAKK,cAAc,KAAKL,OAAO,YAClC,MAAM,KAAKA,OAAO,WAAW;CAE/B;CAEA,MAAMM,aAAa,WAAmB,mBAAsD;EAC3F,IAAI,CAAC,KAAKF,kBAAkB;EAC5B,MAAM,YAAY,KAAKD,cAAc;EACrC,IAAI,cAAc,KAAA,GACjB,MAAM,IAAI,UAAU,4EAA4E,EAC/F,MAAM,YACP,CAAC;EAEF,IAAI;GACH,MAAM,KAAKH,OAAO,YAAY;IAAE;IAAW;GAAU,CAAC;EACvD,SAAS,OAAO;GACf,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;GACrE,IAAI,kCAAkC,KAAK,OAAO,GAAG;GACrD,MAAM,IAAI,UAAU,8BAA8B,WAAW;IAC5D,MAAM;IACN,OAAO;GACR,CAAC;EACF;CACD;AACD;;;AC9MA,MAAa,yBAAyB,WAAW;CAChD,IAAI;CACJ,MAAM;CACN,aAAa;CACb,aAAa;CACb,cAAc;CACd,YAAY;CACZ,SAAS;CACT,SAAS,OAAO,OAAO,QAAQ,mBAAmB,YAAY,GAAG,CAAC,CAAC,OAAO,KAAK;AAChF,CAAC;AAED,MAAa,wBAAwB,WAAW;CAC/C,IAAI;CACJ,MAAM;CACN,aAAa;CACb,aAAa;CACb,cAAc;CACd,YAAY;CACZ,SAAS;CACT,SAAS,OAAO,OAAO,QAAQ,mBAAmB,YAAY,GAAG,CAAC,CAAC,MAAM,KAAK;AAC/E,CAAC;AAED,MAAa,yBAAyB,WAAW;CAChD,IAAI;CACJ,MAAM;CACN,aAAa;CACb,aAAa;CACb,cAAc;CACd,YAAY;CACZ,SAAS;CACT,SAAS,OAAO,OAAO,QAAQ,mBAAmB,YAAY,GAAG,CAAC,CAAC,OAAO,KAAK;AAChF,CAAC;AAED,MAAa,qBAAqB,aAAa;CAC9C,IAAI;CACJ,OAAO;CACP,aACC;CACD,SAAS;CACT,MAAM;EAAE,MAAM;EAAU,QAAQ;CAAuB;CACvD,YAAY,CAAC,MAAM,QAAQ;CAC3B,gBAAgB;CAChB,MAAM,CAAC,YAAY,QAAQ;CAC3B,OAAO;EAAC;EAAwB;EAAuB;CAAsB;AAC9E,CAAC"}
1
+ {"version":3,"file":"mastra-vector-BillORtZ.js","names":["#store","#defaultIndex","#defaultFilter","#dimension","#autoCreateIndex","#ownsStore","#ensureIndex"],"sources":["../src/vendors/mastra-vector/contracts.ts","../src/vendors/mastra-vector/client.ts","../src/vendors/mastra-vector/module.ts"],"sourcesContent":["import { z } from 'zod'\n\nimport { vectorDefaultFilterSchema } from '../_vector'\n\nexport {\n\tMAX_TOP_K,\n\tMAX_VECTOR_BATCH,\n\tMAX_VECTOR_DIMENSIONS,\n\tdeleteVectorsInputSchema,\n\tdeleteVectorsOutputSchema,\n\tqueryVectorsInputSchema,\n\tqueryVectorsOutputSchema,\n\tupsertVectorsInputSchema,\n\tupsertVectorsOutputSchema,\n\tvectorMatchSchema,\n\tvectorMetadataSchema,\n\tvectorPointSchema\n} from '../_vector'\nexport type {\n\tDeleteVectorsInput,\n\tDeleteVectorsOutput,\n\tQueryVectorsInput,\n\tQueryVectorsOutput,\n\tUpsertVectorsInput,\n\tUpsertVectorsOutput,\n\tVectorMatch,\n\tVectorMetadata,\n\tVectorPoint\n} from '../_vector'\n\n/**\n * Mastra PgVector auth (`@mastra/pg`).\n * Host owns Postgres connection + schema; package does not invent org policy.\n */\nexport const mastraVectorAuthSchema = z.object({\n\tconnection_string: z\n\t\t.string()\n\t\t.min(1)\n\t\t.describe('Postgres connection string for Mastra PgVector (e.g. Supabase DB URL)'),\n\tid: z.string().min(1).describe('Mastra vector store id (stable string for this store instance)'),\n\tschema_name: z\n\t\t.string()\n\t\t.min(1)\n\t\t.optional()\n\t\t.describe('Postgres schema for vector tables (e.g. agent); omit for package default'),\n\tdefault_index: z.string().min(1).optional().describe('Default index name when tool input omits collection'),\n\tdimension: z\n\t\t.number()\n\t\t.int()\n\t\t.positive()\n\t\t.optional()\n\t\t.describe('Embedding dimension; required when auto_create_index is true'),\n\tauto_create_index: z\n\t\t.boolean()\n\t\t.optional()\n\t\t.describe('When true, create the index on upsert if missing (needs dimension)'),\n\tdisable_init: z.boolean().optional().describe('Pass disableInit to PgVector (host manages migration/init)'),\n\tdefault_filter: vectorDefaultFilterSchema\n\t\t.optional()\n\t\t.describe(\n\t\t\t'Host-bound metadata filter always applied on query (Mongo-style / Mastra PG filter); flat keys stamped on upsert'\n\t\t)\n})\n\nexport type MastraVectorAuth = z.infer<typeof mastraVectorAuthSchema>\n","/**\n * Mastra PgVector vendor client (`@mastra/pg`).\n * Host: `new MastraVectorClient(auth)`. Agent tools: `fromContext(ctx)`.\n * Runtime: node (Postgres). Optional peer: `@mastra/pg`.\n */\n\nimport { PgVector } from '@mastra/pg'\nimport { isNumber, isPlainObject, isString } from 'es-toolkit'\n\nimport { ToolError } from '../../core/errors'\nimport { requireAuth } from '../../core/provider'\nimport type { ToolContext } from '../../core/types'\nimport { mergeVectorFilter, parseMetadata, requireCollection, stampDefaultFilterMetadata } from '../_vector/domain'\nimport type { VectorDefaultFilter } from '../_vector/domain'\nimport type {\n\tDeleteVectorsInput,\n\tDeleteVectorsOutput,\n\tMastraVectorAuth,\n\tQueryVectorsInput,\n\tQueryVectorsOutput,\n\tUpsertVectorsInput,\n\tUpsertVectorsOutput,\n\tVectorMatch\n} from './contracts'\nimport { mastraVectorAuthSchema } from './contracts'\n\n/** Injected / real store surface (filter is opaque Record for seam compatibility). */\ntype MastraStore = {\n\tupsert: (input: {\n\t\tindexName: string\n\t\tids: string[]\n\t\tvectors: number[][]\n\t\tmetadata: Array<Record<string, unknown>>\n\t}) => Promise<unknown>\n\tquery: (input: {\n\t\tindexName: string\n\t\tqueryVector: number[]\n\t\ttopK?: number\n\t\tincludeVector?: boolean\n\t\tfilter?: Record<string, unknown>\n\t}) => Promise<Array<{ id?: string; score?: number; metadata?: unknown; vector?: number[] }>>\n\tdeleteVectors: (input: { indexName: string; ids: string[] }) => Promise<unknown>\n\tcreateIndex: (input: { indexName: string; dimension: number }) => Promise<unknown>\n\tdisconnect?: () => Promise<void>\n}\n\ntype PgQueryArgs = Parameters<PgVector['query']>[0]\n\n/** Narrow a built arg bag to PgVector query params (Mongo-style filter is structural). */\nfunction isPgQueryArgs(value: unknown): value is PgQueryArgs {\n\treturn (\n\t\tisPlainObject(value) &&\n\t\tisString(value['indexName']) &&\n\t\tvalue['indexName'].length > 0 &&\n\t\tArray.isArray(value['queryVector'])\n\t)\n}\n\nexport type MastraVectorClientOptions = {\n\t/**\n\t * Test injection — production uses PgVector.\n\t * Must implement the same method names as PgVector for upsert/query/deleteVectors/createIndex.\n\t */\n\tstore?: MastraStore\n}\n\nexport class MastraVectorClient {\n\treadonly #store: MastraStore\n\treadonly #defaultIndex: string | undefined\n\treadonly #defaultFilter: VectorDefaultFilter | undefined\n\treadonly #dimension: number | undefined\n\treadonly #autoCreateIndex: boolean\n\treadonly #ownsStore: boolean\n\n\tconstructor(auth: MastraVectorAuth, options: MastraVectorClientOptions = {}) {\n\t\tconst parsed = mastraVectorAuthSchema.safeParse(auth)\n\t\tif (!parsed.success) {\n\t\t\tthrow new ToolError('Invalid Mastra vector auth credentials', {\n\t\t\t\tcode: 'bad_auth',\n\t\t\t\tdetails: { issues: parsed.error.issues.map((issue) => issue.message) }\n\t\t\t})\n\t\t}\n\t\tconst data = parsed.data\n\t\tthis.#defaultIndex = data.default_index\n\t\tthis.#defaultFilter = data.default_filter\n\t\tthis.#dimension = data.dimension\n\t\tthis.#autoCreateIndex = data.auto_create_index === true\n\n\t\tif (options.store) {\n\t\t\tthis.#store = options.store\n\t\t\tthis.#ownsStore = false\n\t\t\treturn\n\t\t}\n\n\t\tconst config: {\n\t\t\tconnectionString: string\n\t\t\tid: string\n\t\t\tschemaName?: string\n\t\t\tdisableInit?: boolean\n\t\t} = {\n\t\t\tconnectionString: data.connection_string,\n\t\t\tid: data.id\n\t\t}\n\t\tif (data.schema_name) config.schemaName = data.schema_name\n\t\tif (data.disable_init === true) config.disableInit = true\n\n\t\tconst pg = new PgVector(config)\n\t\t// Adapt PgVector to opaque Record filters (Mongo-style / flat equality is native).\n\t\tthis.#store = {\n\t\t\tupsert: (input) =>\n\t\t\t\tpg.upsert({\n\t\t\t\t\tindexName: input.indexName,\n\t\t\t\t\tids: input.ids,\n\t\t\t\t\tvectors: input.vectors,\n\t\t\t\t\tmetadata: input.metadata\n\t\t\t\t}),\n\t\t\tquery: (input) => {\n\t\t\t\tconst args: Record<string, unknown> = {\n\t\t\t\t\tindexName: input.indexName,\n\t\t\t\t\tqueryVector: input.queryVector,\n\t\t\t\t\t...(input.topK !== undefined && { topK: input.topK }),\n\t\t\t\t\t...(input.includeVector !== undefined && { includeVector: input.includeVector }),\n\t\t\t\t\t...(input.filter !== undefined && { filter: input.filter })\n\t\t\t\t}\n\t\t\t\tif (!isPgQueryArgs(args)) {\n\t\t\t\t\tthrow new ToolError('Invalid Mastra vector query args', { code: 'internal' })\n\t\t\t\t}\n\t\t\t\treturn pg.query(args)\n\t\t\t},\n\t\t\tdeleteVectors: (input) => pg.deleteVectors({ indexName: input.indexName, ids: input.ids }),\n\t\t\tcreateIndex: (input) => pg.createIndex({ indexName: input.indexName, dimension: input.dimension }),\n\t\t\tdisconnect: () => pg.disconnect()\n\t\t}\n\t\tthis.#ownsStore = true\n\t}\n\n\tstatic fromContext(ctx: ToolContext): MastraVectorClient {\n\t\tconst auth = requireAuth(ctx, mastraVectorAuthSchema)\n\t\treturn new MastraVectorClient(auth)\n\t}\n\n\tasync upsert(input: UpsertVectorsInput): Promise<UpsertVectorsOutput> {\n\t\tconst indexName = requireCollection(input.collection, this.#defaultIndex, 'Mastra vector upsert')\n\t\tawait this.#ensureIndex(indexName, input.vectors[0]?.values.length)\n\n\t\tawait this.#store.upsert({\n\t\t\tindexName,\n\t\t\tids: input.vectors.map((point) => point.id),\n\t\t\tvectors: input.vectors.map((point) => point.values),\n\t\t\tmetadata: input.vectors.map((point) => stampDefaultFilterMetadata(point.metadata, this.#defaultFilter) ?? {})\n\t\t})\n\t\treturn { upserted: input.vectors.length, collection: indexName }\n\t}\n\n\tasync query(input: QueryVectorsInput): Promise<QueryVectorsOutput> {\n\t\tconst indexName = requireCollection(input.collection, this.#defaultIndex, 'Mastra vector query')\n\t\tconst topK = input.top_k ?? 8\n\t\tconst includeVector = input.include_values === true\n\t\tconst filter = mergeVectorFilter(this.#defaultFilter, input.filter)\n\n\t\tconst rows = await this.#store.query({\n\t\t\tindexName,\n\t\t\tqueryVector: input.vector,\n\t\t\ttopK,\n\t\t\tincludeVector,\n\t\t\t...(filter && { filter })\n\t\t})\n\n\t\tconst includeMetadata = input.include_metadata !== false\n\t\tconst matches: VectorMatch[] = []\n\t\tfor (const row of rows) {\n\t\t\tif (!isString(row.id) || row.id.length === 0) continue\n\t\t\tconst score = isNumber(row.score) ? row.score : 0\n\t\t\tconst match: VectorMatch = { id: row.id, score }\n\t\t\tif (includeMetadata && row.metadata !== undefined) {\n\t\t\t\tconst meta = parseMetadata(row.metadata)\n\t\t\t\tif (meta) match.metadata = meta\n\t\t\t}\n\t\t\tif (includeVector && Array.isArray(row.vector)) {\n\t\t\t\tconst values = row.vector.filter((n): n is number => isNumber(n) && Number.isFinite(n))\n\t\t\t\tif (values.length === row.vector.length) match.values = values\n\t\t\t}\n\t\t\tmatches.push(match)\n\t\t}\n\t\treturn { matches, collection: indexName }\n\t}\n\n\tasync delete(input: DeleteVectorsInput): Promise<DeleteVectorsOutput> {\n\t\tconst indexName = requireCollection(input.collection, this.#defaultIndex, 'Mastra vector delete')\n\t\tawait this.#store.deleteVectors({ indexName, ids: input.ids })\n\t\treturn { deleted: input.ids.length, collection: indexName }\n\t}\n\n\tasync disconnect(): Promise<void> {\n\t\tif (this.#ownsStore && this.#store.disconnect) {\n\t\t\tawait this.#store.disconnect()\n\t\t}\n\t}\n\n\tasync #ensureIndex(indexName: string, inferredDimension: number | undefined): Promise<void> {\n\t\tif (!this.#autoCreateIndex) return\n\t\tconst dimension = this.#dimension ?? inferredDimension\n\t\tif (dimension === undefined) {\n\t\t\tthrow new ToolError('Mastra auto_create_index requires dimension on auth or non-empty vectors', {\n\t\t\t\tcode: 'bad_input'\n\t\t\t})\n\t\t}\n\t\ttry {\n\t\t\tawait this.#store.createIndex({ indexName, dimension })\n\t\t} catch (error) {\n\t\t\tconst message = error instanceof Error ? error.message : String(error)\n\t\t\tif (/already exists|duplicate|exist/i.test(message)) return\n\t\t\tthrow new ToolError(`Mastra createIndex failed: ${message}`, {\n\t\t\t\tcode: 'upstream',\n\t\t\t\tcause: error\n\t\t\t})\n\t\t}\n\t}\n}\n","import { defineModule, defineTool } from '../../core/define'\nimport { MastraVectorClient } from './client'\nimport {\n\tdeleteVectorsInputSchema,\n\tdeleteVectorsOutputSchema,\n\tmastraVectorAuthSchema,\n\tqueryVectorsInputSchema,\n\tqueryVectorsOutputSchema,\n\tupsertVectorsInputSchema,\n\tupsertVectorsOutputSchema\n} from './contracts'\n\nexport const mastraVectorUpsertTool = defineTool({\n\tid: 'mastra-vector-upsert',\n\tname: 'mastraVectorUpsert',\n\tdescription: 'Upsert vectors into a Mastra PgVector index. collection maps to indexName.',\n\tinputSchema: upsertVectorsInputSchema,\n\toutputSchema: upsertVectorsOutputSchema,\n\tsideEffect: 'write',\n\truntime: 'node',\n\texecute: async (input, ctx) => MastraVectorClient.fromContext(ctx).upsert(input)\n})\n\nexport const mastraVectorQueryTool = defineTool({\n\tid: 'mastra-vector-query',\n\tname: 'mastraVectorQuery',\n\tdescription: 'Nearest-neighbor query against a Mastra PgVector index.',\n\tinputSchema: queryVectorsInputSchema,\n\toutputSchema: queryVectorsOutputSchema,\n\tsideEffect: 'read',\n\truntime: 'node',\n\texecute: async (input, ctx) => MastraVectorClient.fromContext(ctx).query(input)\n})\n\nexport const mastraVectorDeleteTool = defineTool({\n\tid: 'mastra-vector-delete',\n\tname: 'mastraVectorDelete',\n\tdescription: 'Delete vectors by id from a Mastra PgVector index.',\n\tinputSchema: deleteVectorsInputSchema,\n\toutputSchema: deleteVectorsOutputSchema,\n\tsideEffect: 'delete',\n\truntime: 'node',\n\texecute: async (input, ctx) => MastraVectorClient.fromContext(ctx).delete(input)\n})\n\nexport const mastraVectorModule = defineModule({\n\tid: 'mastra-vector',\n\ttitle: 'Mastra Vector',\n\tdescription:\n\t\t'Mastra PgVector over Postgres: upsert, query, and delete vectors. Index names map from collection. Node runtime.',\n\truntime: 'node',\n\tauth: { type: 'custom', schema: mastraVectorAuthSchema },\n\tcategories: ['ai', 'vector'],\n\tclassification: 'pii',\n\ttags: ['pgvector', 'mastra'],\n\ttools: [mastraVectorUpsertTool, mastraVectorQueryTool, mastraVectorDeleteTool]\n})\n"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { t as ToolError } from "../../errors-DoSpNHvs.js";
2
- import { n as defineModule, r as defineTool } from "../../define-DdFALdNf.js";
2
+ import { n as defineModule, r as defineTool } from "../../define-CbQI8dAN.js";
3
3
  import { n as requireAuth } from "../../provider-CgDAlg6K.js";
4
4
  import { n as findArtifactRefs, t as artifactRefSchema } from "../../artifact-D064mHfK.js";
5
5
  import { n as bytesToBase64, o as utf8ToBytes, r as bytesToUtf8, t as base64ToBytes } from "../../bytes-BxpimpQx.js";
6
- import { _ as MAX_OBJECT_BYTES, m as s3AuthSchema, p as S3Client } from "../../s3-TKCIZZ2q.js";
6
+ import { _ as MAX_OBJECT_BYTES, m as s3AuthSchema, p as S3Client } from "../../s3-BpivS7pv.js";
7
7
  import { r as mediaTypeFromPath } from "../../content-type-E4_Qdoa0.js";
8
8
  import { isFunction } from "es-toolkit";
9
9
  import { z } from "zod";
@@ -1,9 +1,9 @@
1
1
  import { t as ToolError } from "../../errors-DoSpNHvs.js";
2
- import { n as defineModule, r as defineTool } from "../../define-DdFALdNf.js";
2
+ import { n as defineModule, r as defineTool } from "../../define-CbQI8dAN.js";
3
3
  import { n as requireAuth } from "../../provider-CgDAlg6K.js";
4
4
  import { t as artifactRefSchema } from "../../artifact-D064mHfK.js";
5
- import { a as BedrockAgentCoreBrowserClient, c as browserSessionIdInputSchema, d as browserStreamSchema, l as browserSessionOutputSchema, s as bedrockAgentCoreBrowserAuthSchema, u as browserStartSessionInputSchema } from "../../bedrock-agentcore-browser-yrEY9cUi.js";
6
- import { c as CloudflareBrowserClient, l as plainTextFromHtml, p as cloudflareBrowserClientAuthSchema } from "../../cloudflare-browser-D9pG4RTj.js";
5
+ import { a as BedrockAgentCoreBrowserClient, c as browserSessionIdInputSchema, d as browserStreamSchema, l as browserSessionOutputSchema, s as bedrockAgentCoreBrowserAuthSchema, u as browserStartSessionInputSchema } from "../../bedrock-agentcore-browser-DINOmO6a.js";
6
+ import { c as CloudflareBrowserClient, l as plainTextFromHtml, p as cloudflareBrowserClientAuthSchema } from "../../cloudflare-browser-Ct8U4_Ru.js";
7
7
  import { z } from "zod";
8
8
  //#region src/modules/browser/contracts.ts
9
9
  const agentCoreBrowserSeamAuthSchema = bedrockAgentCoreBrowserAuthSchema.extend({ provider: z.literal("bedrock-agentcore") });
@@ -1,5 +1,5 @@
1
1
  import { t as ToolError } from "../../errors-DoSpNHvs.js";
2
- import { n as defineModule, r as defineTool } from "../../define-DdFALdNf.js";
2
+ import { n as defineModule, r as defineTool } from "../../define-CbQI8dAN.js";
3
3
  import { z } from "zod";
4
4
  import ICAL from "ical.js";
5
5
  //#region src/modules/calendar/contracts.ts
@@ -1,8 +1,8 @@
1
1
  import { t as ToolError } from "../../errors-DoSpNHvs.js";
2
- import { n as defineModule, r as defineTool } from "../../define-DdFALdNf.js";
2
+ import { n as defineModule, r as defineTool } from "../../define-CbQI8dAN.js";
3
3
  import { n as requireAuth } from "../../provider-CgDAlg6K.js";
4
- import { _ as MAX_COMMAND_CHARS, g as MAX_CODE_CHARS, m as BedrockAgentCoreCodeInterpreterClient, x as bedrockAgentCoreCodeInterpreterAuthSchema, y as MAX_FILE_TEXT } from "../../bedrock-agentcore-code-interpreter-BnJnDxCp.js";
5
- import { F as cloudflareSandboxAuthSchema, v as CloudflareSandboxClient } from "../../cloudflare-sandbox-DHE4fmiq.js";
4
+ import { _ as MAX_COMMAND_CHARS, g as MAX_CODE_CHARS, m as BedrockAgentCoreCodeInterpreterClient, x as bedrockAgentCoreCodeInterpreterAuthSchema, y as MAX_FILE_TEXT } from "../../bedrock-agentcore-code-interpreter-Doon_lrN.js";
5
+ import { F as cloudflareSandboxAuthSchema, v as CloudflareSandboxClient } from "../../cloudflare-sandbox-kpfw9aT6.js";
6
6
  import { isPlainObject, isString } from "es-toolkit";
7
7
  import { z } from "zod";
8
8
  //#region src/modules/code-sandbox/contracts.ts
@@ -1,4 +1,4 @@
1
- import { n as defineModule, r as defineTool } from "../../define-DdFALdNf.js";
1
+ import { n as defineModule, r as defineTool } from "../../define-CbQI8dAN.js";
2
2
  import { n as extensionFromMediaType, r as mediaTypeFromPath, t as allExtensionsFromMediaType } from "../../content-type-E4_Qdoa0.js";
3
3
  import { z } from "zod";
4
4
  //#region src/modules/content-type/module.ts
@@ -1,5 +1,5 @@
1
1
  import { t as ToolError } from "../../errors-DoSpNHvs.js";
2
- import { n as defineModule, r as defineTool } from "../../define-DdFALdNf.js";
2
+ import { n as defineModule, r as defineTool } from "../../define-CbQI8dAN.js";
3
3
  import { n as requireAuth } from "../../provider-CgDAlg6K.js";
4
4
  import { a as toArrayBuffer, n as bytesToBase64, o as utf8ToBytes, t as base64ToBytes } from "../../bytes-BxpimpQx.js";
5
5
  import { z } from "zod";
@@ -1,6 +1,6 @@
1
- import { n as defineModule, r as defineTool } from "../../define-DdFALdNf.js";
1
+ import { n as defineModule, r as defineTool } from "../../define-CbQI8dAN.js";
2
2
  import { n as requireAuth } from "../../provider-CgDAlg6K.js";
3
- import { S as textractStatusInputSchema, _ as textractExtractResultSchema, a as TextractClient, b as textractExtractTextInputSchema, f as MAX_INLINE_EXTRACT_CHARS, h as textractAuthSchema, u as MAX_BATCH_EXTRACT, v as textractExtractTextBatchInputSchema, x as textractOutputModeSchema, y as textractExtractTextBatchOutputSchema } from "../../textract-CthgcP6w.js";
3
+ import { S as textractStatusInputSchema, _ as textractExtractResultSchema, a as TextractClient, b as textractExtractTextInputSchema, f as MAX_INLINE_EXTRACT_CHARS, h as textractAuthSchema, u as MAX_BATCH_EXTRACT, v as textractExtractTextBatchInputSchema, x as textractOutputModeSchema, y as textractExtractTextBatchOutputSchema } from "../../textract-BCNadrCr.js";
4
4
  import { z } from "zod";
5
5
  //#region src/modules/document-extract/contracts.ts
6
6
  /** Host auth: vendor credentials + provider discriminator. */
@@ -1,7 +1,7 @@
1
- import { n as defineModule, r as defineTool } from "../../define-DdFALdNf.js";
1
+ import { n as defineModule, r as defineTool } from "../../define-CbQI8dAN.js";
2
2
  import { n as requireAuth } from "../../provider-CgDAlg6K.js";
3
3
  import { n as runBatchItems, t as batchResultSchema } from "../../batch-Co1ujeAW.js";
4
- import { _ as cloudflareBrowserRenderScreenshotInputSchema, c as CloudflareBrowserClient, f as cloudflareBrowserAuthSchema, g as cloudflareBrowserRenderPdfInputSchema, h as cloudflareBrowserRenderOutputSchema } from "../../cloudflare-browser-D9pG4RTj.js";
4
+ import { _ as cloudflareBrowserRenderScreenshotInputSchema, c as CloudflareBrowserClient, f as cloudflareBrowserAuthSchema, g as cloudflareBrowserRenderPdfInputSchema, h as cloudflareBrowserRenderOutputSchema } from "../../cloudflare-browser-Ct8U4_Ru.js";
5
5
  import { z } from "zod";
6
6
  /** Host auth: vendor credentials + provider discriminator. */
7
7
  const cloudflareBrowserDocumentRenderAuthSchema = cloudflareBrowserAuthSchema.extend({ provider: z.literal("cloudflare-browser") });
@@ -1,10 +1,10 @@
1
1
  import { n as isToolError, t as ToolError } from "../../errors-DoSpNHvs.js";
2
- import { n as defineModule, r as defineTool } from "../../define-DdFALdNf.js";
2
+ import { n as defineModule, r as defineTool } from "../../define-CbQI8dAN.js";
3
3
  import { n as requireAuth } from "../../provider-CgDAlg6K.js";
4
4
  import { n as runBatchItems, t as batchResultSchema } from "../../batch-Co1ujeAW.js";
5
5
  import { a as attachmentSchema, i as MAX_EMAIL_BYTES, o as namedAddressSchema, r as MAX_BATCH_EMAILS } from "../../limits-hjrO8zUG.js";
6
- import { a as cloudflareEmailAuthSchema, i as CloudflareEmailClient } from "../../cloudflare-email-bsq902dg.js";
7
- import { a as resendAuthSchema, c as resendSendInputSchema, i as ResendClient } from "../../resend-Cfgm4HuV.js";
6
+ import { a as cloudflareEmailAuthSchema, i as CloudflareEmailClient } from "../../cloudflare-email-oS9Ku8a6.js";
7
+ import { a as resendAuthSchema, c as resendSendInputSchema, i as ResendClient } from "../../resend-BBrjcYvB.js";
8
8
  import { z } from "zod";
9
9
  //#region src/modules/email/contracts.ts
10
10
  /**
@@ -1,5 +1,5 @@
1
1
  import { t as ToolError } from "../../errors-DoSpNHvs.js";
2
- import { n as defineModule, r as defineTool } from "../../define-DdFALdNf.js";
2
+ import { n as defineModule, r as defineTool } from "../../define-CbQI8dAN.js";
3
3
  import { n as bytesToBase64, o as utf8ToBytes, t as base64ToBytes } from "../../bytes-BxpimpQx.js";
4
4
  import { isNil, isPlainObject, isString } from "es-toolkit";
5
5
  import { castArray, has, isArray } from "es-toolkit/compat";
@@ -1,9 +1,9 @@
1
1
  import { t as ToolError } from "../../errors-DoSpNHvs.js";
2
- import { n as defineModule, r as defineTool } from "../../define-DdFALdNf.js";
2
+ import { n as defineModule, r as defineTool } from "../../define-CbQI8dAN.js";
3
3
  import { n as requireAuth } from "../../provider-CgDAlg6K.js";
4
4
  import { t as artifactRefSchema } from "../../artifact-D064mHfK.js";
5
5
  import { n as bytesToBase64, r as bytesToUtf8 } from "../../bytes-BxpimpQx.js";
6
- import { m as s3AuthSchema, p as S3Client } from "../../s3-TKCIZZ2q.js";
6
+ import { m as s3AuthSchema, p as S3Client } from "../../s3-BpivS7pv.js";
7
7
  import { z } from "zod";
8
8
  //#region src/modules/files/contracts.ts
9
9
  /** Max bytes for a single range read through files tools. */
@@ -1,8 +1,8 @@
1
1
  import { t as ToolError } from "../../errors-DoSpNHvs.js";
2
- import { n as defineModule, r as defineTool } from "../../define-DdFALdNf.js";
2
+ import { n as defineModule, r as defineTool } from "../../define-CbQI8dAN.js";
3
3
  import { n as requireAuth } from "../../provider-CgDAlg6K.js";
4
4
  import { t as artifactRefSchema } from "../../artifact-D064mHfK.js";
5
- import { m as s3AuthSchema, p as S3Client } from "../../s3-TKCIZZ2q.js";
5
+ import { m as s3AuthSchema, p as S3Client } from "../../s3-BpivS7pv.js";
6
6
  import { n as extensionFromMediaType, r as mediaTypeFromPath } from "../../content-type-E4_Qdoa0.js";
7
7
  import { z } from "zod";
8
8
  import sharp from "sharp";
@@ -1,14 +1,14 @@
1
1
  import { t as ToolError } from "../../errors-DoSpNHvs.js";
2
- import { n as defineModule, r as defineTool } from "../../define-DdFALdNf.js";
2
+ import { n as defineModule, r as defineTool } from "../../define-CbQI8dAN.js";
3
3
  import { n as requireAuth } from "../../provider-CgDAlg6K.js";
4
4
  import { n as bytesToBase64, t as base64ToBytes } from "../../bytes-BxpimpQx.js";
5
- import { m as s3AuthSchema, p as S3Client } from "../../s3-TKCIZZ2q.js";
5
+ import { m as s3AuthSchema, p as S3Client } from "../../s3-BpivS7pv.js";
6
6
  import { n as runBatchItems, t as batchResultSchema } from "../../batch-Co1ujeAW.js";
7
- import { d as ImessageClient, g as imessageAuthSchema, h as MAX_MEDIA_BYTES, m as isImessageOutcomeUnknown, p as isImessageDefiniteRejection } from "../../imessage-B-0DZfMa.js";
7
+ import { d as ImessageClient, g as imessageAuthSchema, h as MAX_MEDIA_BYTES, m as isImessageOutcomeUnknown, p as isImessageDefiniteRejection } from "../../imessage-u90N3KVq.js";
8
8
  import { n as createTypingPulse, t as createLiveMessage } from "../../transport-B4vn-XiQ.js";
9
- import { A as slackAuthSchema, C as isSlackOutcomeUnknown, S as isSlackDefiniteRejection, b as SlackClient, w as MAX_MEDIA_BYTES$1 } from "../../slack-D6XzBS3b.js";
10
- import { _ as isTeamsOutcomeUnknown, b as teamsAuthSchema, g as isTeamsDefiniteRejection, m as TeamsClient, v as MAX_MEDIA_BYTES$2 } from "../../teams-bGfle6pU.js";
11
- import { _ as isTelegramOutcomeUnknown, b as telegramAuthSchema, g as isTelegramDefiniteRejection, m as TelegramClient, v as MAX_MEDIA_BYTES$3 } from "../../telegram-B-TZi9fM.js";
9
+ import { A as slackAuthSchema, C as isSlackOutcomeUnknown, S as isSlackDefiniteRejection, b as SlackClient, w as MAX_MEDIA_BYTES$1 } from "../../slack-D9OmRfO9.js";
10
+ import { _ as isTeamsOutcomeUnknown, b as teamsAuthSchema, g as isTeamsDefiniteRejection, m as TeamsClient, v as MAX_MEDIA_BYTES$2 } from "../../teams-SteU8V5H.js";
11
+ import { _ as isTelegramOutcomeUnknown, b as telegramAuthSchema, g as isTelegramDefiniteRejection, m as TelegramClient, v as MAX_MEDIA_BYTES$3 } from "../../telegram-Buo2ZFGj.js";
12
12
  import { isError } from "es-toolkit";
13
13
  import { z } from "zod";
14
14
  //#region src/modules/messaging/contracts.ts
@@ -1,6 +1,6 @@
1
- import { n as defineModule, r as defineTool } from "../../define-DdFALdNf.js";
1
+ import { n as defineModule, r as defineTool } from "../../define-CbQI8dAN.js";
2
2
  import { n as requireAuth } from "../../provider-CgDAlg6K.js";
3
- import { _ as sqsAuthSchema, c as queueAcknowledgeOutputSchema, d as queueExtendVisibilityInputSchema, f as queueExtendVisibilityOutputSchema, g as queueReceiveOutputSchema, h as queueReceiveInputSchema, l as queueEnqueueInputSchema, m as queueReceiptInputSchema, o as SqsClient, p as queueMessageSchema, u as queueEnqueueOutputSchema } from "../../sqs-B50DWyTf.js";
3
+ import { _ as sqsAuthSchema, c as queueAcknowledgeOutputSchema, d as queueExtendVisibilityInputSchema, f as queueExtendVisibilityOutputSchema, g as queueReceiveOutputSchema, h as queueReceiveInputSchema, l as queueEnqueueInputSchema, m as queueReceiptInputSchema, o as SqsClient, p as queueMessageSchema, u as queueEnqueueOutputSchema } from "../../sqs-BPNYdTpw.js";
4
4
  import { z } from "zod";
5
5
  //#region src/modules/queue/contracts.ts
6
6
  const sqsQueueAuthSchema = sqsAuthSchema.extend({ provider: z.literal("sqs") });
@@ -1,9 +1,9 @@
1
1
  import { t as ToolError } from "../../errors-DoSpNHvs.js";
2
- import { n as defineModule, r as defineTool } from "../../define-DdFALdNf.js";
2
+ import { n as defineModule, r as defineTool } from "../../define-CbQI8dAN.js";
3
3
  import { n as requireAuth } from "../../provider-CgDAlg6K.js";
4
4
  import { t as HttpService } from "../../http-service-BMBIryAL.js";
5
5
  import { f as vectorMetadataSchema } from "../../schemas-ChOAhdo9.js";
6
- import { a as VectorStoreClient, c as qdrantVectorAuthSchema, l as supabaseVectorSeamAuthSchema, o as mastraVectorSeamAuthSchema, s as pineconeVectorAuthSchema } from "../../vector-store-DrwuMOne.js";
6
+ import { a as VectorStoreClient, c as qdrantVectorAuthSchema, l as supabaseVectorSeamAuthSchema, o as mastraVectorSeamAuthSchema, s as pineconeVectorAuthSchema } from "../../vector-store-DvqvDSLb.js";
7
7
  import { isPlainObject } from "es-toolkit";
8
8
  import { z } from "zod";
9
9
  //#region src/modules/rag/contracts.ts
@@ -1,6 +1,6 @@
1
- import { n as defineModule, r as defineTool } from "../../define-DdFALdNf.js";
1
+ import { n as defineModule, r as defineTool } from "../../define-CbQI8dAN.js";
2
2
  import { n as requireAuth } from "../../provider-CgDAlg6K.js";
3
- import { C as scheduleWriteOutputSchema, S as scheduleUpdateInputSchema, _ as scheduleListInputSchema, b as scheduleStateSchema, f as eventBridgeSchedulerAuthSchema, g as scheduleGetOutputSchema, h as scheduleDetailSchema, m as scheduleDeleteOutputSchema, p as scheduleCreateInputSchema, s as EventBridgeSchedulerClient, v as scheduleListOutputSchema, x as scheduleSummarySchema, y as scheduleNameInputSchema } from "../../eventbridge-scheduler-ICepMPWG.js";
3
+ import { C as scheduleWriteOutputSchema, S as scheduleUpdateInputSchema, _ as scheduleListInputSchema, b as scheduleStateSchema, f as eventBridgeSchedulerAuthSchema, g as scheduleGetOutputSchema, h as scheduleDetailSchema, m as scheduleDeleteOutputSchema, p as scheduleCreateInputSchema, s as EventBridgeSchedulerClient, v as scheduleListOutputSchema, x as scheduleSummarySchema, y as scheduleNameInputSchema } from "../../eventbridge-scheduler-CTgSZgZZ.js";
4
4
  import { z } from "zod";
5
5
  //#region src/modules/scheduler/contracts.ts
6
6
  /**
@@ -1,5 +1,5 @@
1
1
  import { t as ToolError } from "../../errors-DoSpNHvs.js";
2
- import { n as defineModule, r as defineTool } from "../../define-DdFALdNf.js";
2
+ import { n as defineModule, r as defineTool } from "../../define-CbQI8dAN.js";
3
3
  import { n as requireAuth } from "../../provider-CgDAlg6K.js";
4
4
  import { isString } from "es-toolkit";
5
5
  import { z } from "zod";
@@ -1,4 +1,4 @@
1
- import { n as defineModule, r as defineTool } from "../../define-DdFALdNf.js";
1
+ import { n as defineModule, r as defineTool } from "../../define-CbQI8dAN.js";
2
2
  import { n as requireAuth } from "../../provider-CgDAlg6K.js";
3
3
  import { z } from "zod";
4
4
  //#region src/modules/tasks/contracts.ts
@@ -1,3 +1,3 @@
1
1
  import { a as deleteVectorsOutputSchema, c as upsertVectorsInputSchema, d as vectorMatchSchema, f as vectorMetadataSchema, i as deleteVectorsInputSchema, l as upsertVectorsOutputSchema, n as MAX_VECTOR_BATCH, o as queryVectorsInputSchema, p as vectorPointSchema, r as MAX_VECTOR_DIMENSIONS, s as queryVectorsOutputSchema, t as MAX_TOP_K } from "../../schemas-ChOAhdo9.js";
2
- import { a as VectorStoreClient, c as qdrantVectorAuthSchema, i as vectorStoreUpsertTool, l as supabaseVectorSeamAuthSchema, n as vectorStoreModule, o as mastraVectorSeamAuthSchema, r as vectorStoreQueryTool, s as pineconeVectorAuthSchema, t as vectorStoreDeleteTool, u as vectorStoreAuthSchema } from "../../vector-store-DrwuMOne.js";
2
+ import { a as VectorStoreClient, c as qdrantVectorAuthSchema, i as vectorStoreUpsertTool, l as supabaseVectorSeamAuthSchema, n as vectorStoreModule, o as mastraVectorSeamAuthSchema, r as vectorStoreQueryTool, s as pineconeVectorAuthSchema, t as vectorStoreDeleteTool, u as vectorStoreAuthSchema } from "../../vector-store-DvqvDSLb.js";
3
3
  export { MAX_TOP_K, MAX_VECTOR_BATCH, MAX_VECTOR_DIMENSIONS, VectorStoreClient, deleteVectorsInputSchema, deleteVectorsOutputSchema, mastraVectorSeamAuthSchema, pineconeVectorAuthSchema, qdrantVectorAuthSchema, queryVectorsInputSchema, queryVectorsOutputSchema, supabaseVectorSeamAuthSchema, upsertVectorsInputSchema, upsertVectorsOutputSchema, vectorMatchSchema, vectorMetadataSchema, vectorPointSchema, vectorStoreAuthSchema, vectorStoreDeleteTool, vectorStoreModule, vectorStoreQueryTool, vectorStoreUpsertTool };
@@ -1,5 +1,5 @@
1
1
  import { t as ToolError } from "../../errors-DoSpNHvs.js";
2
- import { n as defineModule, r as defineTool } from "../../define-DdFALdNf.js";
2
+ import { n as defineModule, r as defineTool } from "../../define-CbQI8dAN.js";
3
3
  import { n as requireAuth } from "../../provider-CgDAlg6K.js";
4
4
  import { i as mapTransportNetworkError, t as HttpService } from "../../http-service-BMBIryAL.js";
5
5
  import { z } from "zod";