@hexclave/shared 1.0.21 → 1.0.22

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 (34) hide show
  1. package/dist/ai/unified-prompts/reminders.js +1 -1
  2. package/dist/ai/unified-prompts/skill-site-prompt.d.ts.map +1 -1
  3. package/dist/ai/unified-prompts/skill-site-prompt.js +4 -1
  4. package/dist/ai/unified-prompts/skill-site-prompt.js.map +1 -1
  5. package/dist/config/schema.d.ts +34 -34
  6. package/dist/esm/ai/unified-prompts/reminders.js +1 -1
  7. package/dist/esm/ai/unified-prompts/skill-site-prompt.d.ts.map +1 -1
  8. package/dist/esm/ai/unified-prompts/skill-site-prompt.js +4 -1
  9. package/dist/esm/ai/unified-prompts/skill-site-prompt.js.map +1 -1
  10. package/dist/esm/config/schema.d.ts +34 -34
  11. package/dist/esm/interface/admin-interface.d.ts +1 -0
  12. package/dist/esm/interface/admin-interface.d.ts.map +1 -1
  13. package/dist/esm/interface/admin-interface.js +2 -1
  14. package/dist/esm/interface/admin-interface.js.map +1 -1
  15. package/dist/esm/interface/client-interface.js +1 -1
  16. package/dist/esm/interface/conversations.d.ts +9 -9
  17. package/dist/esm/interface/crud/email-outbox.d.ts +156 -156
  18. package/dist/esm/interface/crud/email-outbox.js +1 -1
  19. package/dist/esm/interface/crud/email-outbox.js.map +1 -1
  20. package/dist/esm/interface/server-interface.js +1 -1
  21. package/dist/interface/admin-interface.d.ts +1 -0
  22. package/dist/interface/admin-interface.d.ts.map +1 -1
  23. package/dist/interface/admin-interface.js +2 -1
  24. package/dist/interface/admin-interface.js.map +1 -1
  25. package/dist/interface/client-interface.js +1 -1
  26. package/dist/interface/conversations.d.ts +9 -9
  27. package/dist/interface/crud/email-outbox.d.ts +156 -156
  28. package/dist/interface/crud/email-outbox.js +1 -1
  29. package/dist/interface/crud/email-outbox.js.map +1 -1
  30. package/dist/interface/server-interface.js +1 -1
  31. package/package.json +1 -1
  32. package/src/ai/unified-prompts/skill-site-prompt.ts +4 -1
  33. package/src/interface/admin-interface.ts +2 -1
  34. package/src/interface/crud/email-outbox.ts +1 -1
@@ -183,7 +183,7 @@ const emailOutboxCrud = (0, ______crud_js.createCrud)({
183
183
  serverList: {
184
184
  tags: ["Emails"],
185
185
  summary: "List email outbox",
186
- description: "Lists all emails in the outbox with optional filtering by status or simple_status."
186
+ description: "Lists all emails in the outbox with optional filtering by status, simple_status, or user_id."
187
187
  }
188
188
  }
189
189
  });
@@ -1 +1 @@
1
- {"version":3,"file":"email-outbox.js","names":["fieldSchema"],"sources":["../../../src/interface/crud/email-outbox.ts"],"sourcesContent":["import { CrudTypeOf, createCrud } from \"../../crud\";\nimport * as fieldSchema from \"../../schema-fields\";\n\n\n// Recipient types\nconst recipientUserPrimaryEmailSchema = fieldSchema.yupObject({\n type: fieldSchema.yupString().oneOf([\"user-primary-email\"]).defined(),\n user_id: fieldSchema.yupString().defined(),\n}).defined();\n\nconst recipientUserCustomEmailsSchema = fieldSchema.yupObject({\n type: fieldSchema.yupString().oneOf([\"user-custom-emails\"]).defined(),\n user_id: fieldSchema.yupString().defined(),\n emails: fieldSchema.yupArray(fieldSchema.yupString().defined()).defined(),\n}).defined();\n\nconst recipientCustomEmailsSchema = fieldSchema.yupObject({\n type: fieldSchema.yupString().oneOf([\"custom-emails\"]).defined(),\n emails: fieldSchema.yupArray(fieldSchema.yupString().defined()).defined(),\n}).defined();\n\nconst recipientSchema = fieldSchema.yupUnion(\n recipientUserPrimaryEmailSchema,\n recipientUserCustomEmailsSchema,\n recipientCustomEmailsSchema\n);\n\n\n// =============================== BASE FIELDS ===============================\n\n// Base fields present on all emails\nconst emailOutboxBaseSchema = fieldSchema.yupObject({\n id: fieldSchema.yupString().defined(),\n created_at_millis: fieldSchema.yupNumber().defined(),\n updated_at_millis: fieldSchema.yupNumber().defined(),\n tsx_source: fieldSchema.yupString().defined(),\n theme_id: fieldSchema.yupString().nullable().defined(),\n to: recipientSchema.defined(),\n variables: fieldSchema.yupRecord(fieldSchema.yupString(), fieldSchema.jsonSchema).defined(),\n skip_deliverability_check: fieldSchema.yupBoolean().defined(),\n scheduled_at_millis: fieldSchema.yupNumber().defined(),\n\n\n // Source tracking for grouping emails by template/draft\n created_with: fieldSchema.yupString().oneOf([\"draft\", \"programmatic-call\"]).defined(),\n email_draft_id: fieldSchema.yupString().nullable().defined(),\n email_programmatic_call_template_id: fieldSchema.yupString().nullable().defined(),\n\n // Retry-related fields (for debugging/testing deferred retry logic)\n send_retries: fieldSchema.yupNumber().defined(),\n next_send_retry_at_millis: fieldSchema.yupNumber().nullable().defined(),\n // Array of errors from each failed send attempt, each with internal/external messages\n send_attempt_errors: fieldSchema.yupArray(fieldSchema.yupObject({\n attempt_number: fieldSchema.yupNumber().defined(),\n timestamp: fieldSchema.yupString().defined(),\n external_message: fieldSchema.yupString().defined(),\n external_details: fieldSchema.yupRecord(fieldSchema.yupString(), fieldSchema.jsonSchema).defined(),\n internal_message: fieldSchema.yupString().defined(),\n internal_details: fieldSchema.yupRecord(fieldSchema.yupString(), fieldSchema.jsonSchema).defined(),\n }).defined()).nullable().defined(),\n\n status: fieldSchema.yupString().defined(),\n simple_status: fieldSchema.yupString().defined(),\n\n // These fields are overridden because we use concat to build the final schema for each state\n is_paused: fieldSchema.yupBoolean().oneOf([false]).defined(),\n has_rendered: fieldSchema.yupBoolean().oneOf([false]).defined(),\n has_delivered: fieldSchema.yupBoolean().oneOf([false]).defined(),\n}).defined();\n\n// Rendered output fields\nconst renderedFieldsSchema = emailOutboxBaseSchema.concat(fieldSchema.yupObject({\n started_rendering_at_millis: fieldSchema.yupNumber().defined(),\n rendered_at_millis: fieldSchema.yupNumber().defined(),\n subject: fieldSchema.yupString().defined(),\n html: fieldSchema.yupString().nullable().defined(),\n text: fieldSchema.yupString().nullable().defined(),\n is_transactional: fieldSchema.yupBoolean().defined(),\n is_high_priority: fieldSchema.yupBoolean().defined(),\n notification_category_id: fieldSchema.yupString().nullable().defined(),\n has_rendered: fieldSchema.yupBoolean().oneOf([true]).defined(),\n}).defined());\n\nconst startedSendingFieldsSchema = renderedFieldsSchema.concat(fieldSchema.yupObject({\n started_sending_at_millis: fieldSchema.yupNumber().defined(),\n}).defined());\n\n// Finished delivering tracking fields\nconst finishedDeliveringFieldsSchema = startedSendingFieldsSchema.concat(fieldSchema.yupObject({\n delivered_at_millis: fieldSchema.yupNumber().defined(),\n has_delivered: fieldSchema.yupBoolean().oneOf([true]).defined(),\n}).defined());\n\n\n// =============================== STATUS-SPECIFIC SCHEMAS ===============================\n\nconst pausedStatusSchema = emailOutboxBaseSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"paused\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"in-progress\"]).defined(),\n is_paused: fieldSchema.yupBoolean().oneOf([true]).defined(),\n}).defined());\n\nconst preparingStatusSchema = emailOutboxBaseSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"preparing\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"in-progress\"]).defined(),\n}).defined());\n\nconst renderingStatusSchema = emailOutboxBaseSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"rendering\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"in-progress\"]).defined(),\n started_rendering_at_millis: fieldSchema.yupNumber().defined(),\n}).defined());\n\nconst renderErrorStatusSchema = emailOutboxBaseSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"render-error\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"error\"]).defined(),\n started_rendering_at_millis: fieldSchema.yupNumber().defined(),\n rendered_at_millis: fieldSchema.yupNumber().defined(),\n render_error: fieldSchema.yupString().defined(),\n}).defined());\n\nconst scheduledStatusSchema = renderedFieldsSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"scheduled\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"in-progress\"]).defined(),\n has_rendered: fieldSchema.yupBoolean().oneOf([true]).defined(),\n}).defined());\n\nconst queuedStatusSchema = renderedFieldsSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"queued\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"in-progress\"]).defined(),\n has_rendered: fieldSchema.yupBoolean().oneOf([true]).defined(),\n}).defined());\n\nconst sendingStatusSchema = startedSendingFieldsSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"sending\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"in-progress\"]).defined(),\n}).defined());\n\nconst serverErrorStatusSchema = startedSendingFieldsSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"server-error\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"error\"]).defined(),\n error_at_millis: fieldSchema.yupNumber().defined(),\n server_error: fieldSchema.yupString().defined(),\n}).defined());\n\n// SKIPPED can happen at any time in the lifecycle (like PAUSED)\n// An email can be skipped before rendering (has_rendered: false) or after rendering (has_rendered: true)\n// e.g., user deleted after the email was rendered but before it was sent\nconst skippedStatusSchema = emailOutboxBaseSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"skipped\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"ok\"]).defined(),\n skipped_at_millis: fieldSchema.yupNumber().defined(),\n skipped_reason: fieldSchema.yupString().defined(),\n skipped_details: fieldSchema.yupRecord(fieldSchema.yupString(), fieldSchema.jsonSchema).defined(),\n // Override has_rendered to allow both true and false since email can be skipped at any time\n has_rendered: fieldSchema.yupBoolean().defined(),\n // These fields may or may not be present depending on when the email was skipped\n started_rendering_at_millis: fieldSchema.yupNumber().optional(),\n rendered_at_millis: fieldSchema.yupNumber().optional(),\n subject: fieldSchema.yupString().optional(),\n html: fieldSchema.yupString().nullable().optional(),\n text: fieldSchema.yupString().nullable().optional(),\n is_transactional: fieldSchema.yupBoolean().optional(),\n is_high_priority: fieldSchema.yupBoolean().optional(),\n notification_category_id: fieldSchema.yupString().nullable().optional(),\n started_sending_at_millis: fieldSchema.yupNumber().optional(),\n}).defined());\n\nconst bouncedStatusSchema = startedSendingFieldsSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"bounced\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"error\"]).defined(),\n bounced_at_millis: fieldSchema.yupNumber().defined(),\n}).defined());\n\nconst deliveryDelayedStatusSchema = startedSendingFieldsSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"delivery-delayed\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"ok\"]).defined(),\n delivery_delayed_at_millis: fieldSchema.yupNumber().defined(),\n}).defined());\n\nconst sentStatusSchema = finishedDeliveringFieldsSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"sent\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"ok\"]).defined(),\n // Whether this email's provider supports delivery tracking (opens, clicks, etc.)\n can_have_delivery_info: fieldSchema.yupBoolean().defined(),\n}).defined());\n\nconst openedStatusSchema = finishedDeliveringFieldsSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"opened\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"ok\"]).defined(),\n opened_at_millis: fieldSchema.yupNumber().defined(),\n can_have_delivery_info: fieldSchema.yupBoolean().oneOf([true]).defined(),\n}).defined());\n\nconst clickedStatusSchema = finishedDeliveringFieldsSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"clicked\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"ok\"]).defined(),\n clicked_at_millis: fieldSchema.yupNumber().defined(),\n can_have_delivery_info: fieldSchema.yupBoolean().oneOf([true]).defined(),\n}).defined());\n\nconst markedAsSpamStatusSchema = finishedDeliveringFieldsSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"marked-as-spam\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"ok\"]).defined(),\n marked_as_spam_at_millis: fieldSchema.yupNumber().defined(),\n can_have_delivery_info: fieldSchema.yupBoolean().oneOf([true]).defined(),\n}).defined());\n\n// Combined read schema using union\nexport const emailOutboxReadSchema = fieldSchema.yupUnion(\n pausedStatusSchema,\n preparingStatusSchema,\n renderingStatusSchema,\n renderErrorStatusSchema,\n scheduledStatusSchema,\n queuedStatusSchema,\n sendingStatusSchema,\n serverErrorStatusSchema,\n skippedStatusSchema,\n bouncedStatusSchema,\n deliveryDelayedStatusSchema,\n sentStatusSchema,\n openedStatusSchema,\n clickedStatusSchema,\n markedAsSpamStatusSchema\n);\n\n// Update schema for PATCH endpoint\nexport const emailOutboxUpdateSchema = fieldSchema.yupObject({\n tsx_source: fieldSchema.yupString().optional(),\n theme_id: fieldSchema.yupString().nullable().optional(),\n to: recipientSchema.optional(),\n variables: fieldSchema.yupRecord(fieldSchema.yupString(), fieldSchema.jsonSchema).optional(),\n skip_deliverability_check: fieldSchema.yupBoolean().optional(),\n scheduled_at_millis: fieldSchema.yupNumber().optional(),\n is_paused: fieldSchema.yupBoolean().optional(),\n cancel: fieldSchema.yupBoolean().oneOf([true]).optional(),\n}).defined();\n\nexport const emailOutboxCrud = createCrud({\n serverReadSchema: emailOutboxReadSchema,\n serverUpdateSchema: emailOutboxUpdateSchema,\n docs: {\n serverRead: {\n tags: [\"Emails\"],\n summary: \"Get email outbox entry\",\n description: \"Gets a single email from the outbox by ID.\",\n },\n serverUpdate: {\n tags: [\"Emails\"],\n summary: \"Update email outbox entry\",\n description: \"Updates an email in the outbox. Can be used to edit email content, pause/resume, or cancel emails. Only emails in editable states (`paused`, `preparing`, `rendering`, `render-error`, `scheduled`, `queued`, `server-error`) can be modified.\",\n },\n serverList: {\n tags: [\"Emails\"],\n summary: \"List email outbox\",\n description: \"Lists all emails in the outbox with optional filtering by status or simple_status.\",\n },\n },\n});\n\nexport type EmailOutboxCrud = CrudTypeOf<typeof emailOutboxCrud>;\n\n"],"mappings":"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"}
1
+ {"version":3,"file":"email-outbox.js","names":["fieldSchema"],"sources":["../../../src/interface/crud/email-outbox.ts"],"sourcesContent":["import { CrudTypeOf, createCrud } from \"../../crud\";\nimport * as fieldSchema from \"../../schema-fields\";\n\n\n// Recipient types\nconst recipientUserPrimaryEmailSchema = fieldSchema.yupObject({\n type: fieldSchema.yupString().oneOf([\"user-primary-email\"]).defined(),\n user_id: fieldSchema.yupString().defined(),\n}).defined();\n\nconst recipientUserCustomEmailsSchema = fieldSchema.yupObject({\n type: fieldSchema.yupString().oneOf([\"user-custom-emails\"]).defined(),\n user_id: fieldSchema.yupString().defined(),\n emails: fieldSchema.yupArray(fieldSchema.yupString().defined()).defined(),\n}).defined();\n\nconst recipientCustomEmailsSchema = fieldSchema.yupObject({\n type: fieldSchema.yupString().oneOf([\"custom-emails\"]).defined(),\n emails: fieldSchema.yupArray(fieldSchema.yupString().defined()).defined(),\n}).defined();\n\nconst recipientSchema = fieldSchema.yupUnion(\n recipientUserPrimaryEmailSchema,\n recipientUserCustomEmailsSchema,\n recipientCustomEmailsSchema\n);\n\n\n// =============================== BASE FIELDS ===============================\n\n// Base fields present on all emails\nconst emailOutboxBaseSchema = fieldSchema.yupObject({\n id: fieldSchema.yupString().defined(),\n created_at_millis: fieldSchema.yupNumber().defined(),\n updated_at_millis: fieldSchema.yupNumber().defined(),\n tsx_source: fieldSchema.yupString().defined(),\n theme_id: fieldSchema.yupString().nullable().defined(),\n to: recipientSchema.defined(),\n variables: fieldSchema.yupRecord(fieldSchema.yupString(), fieldSchema.jsonSchema).defined(),\n skip_deliverability_check: fieldSchema.yupBoolean().defined(),\n scheduled_at_millis: fieldSchema.yupNumber().defined(),\n\n\n // Source tracking for grouping emails by template/draft\n created_with: fieldSchema.yupString().oneOf([\"draft\", \"programmatic-call\"]).defined(),\n email_draft_id: fieldSchema.yupString().nullable().defined(),\n email_programmatic_call_template_id: fieldSchema.yupString().nullable().defined(),\n\n // Retry-related fields (for debugging/testing deferred retry logic)\n send_retries: fieldSchema.yupNumber().defined(),\n next_send_retry_at_millis: fieldSchema.yupNumber().nullable().defined(),\n // Array of errors from each failed send attempt, each with internal/external messages\n send_attempt_errors: fieldSchema.yupArray(fieldSchema.yupObject({\n attempt_number: fieldSchema.yupNumber().defined(),\n timestamp: fieldSchema.yupString().defined(),\n external_message: fieldSchema.yupString().defined(),\n external_details: fieldSchema.yupRecord(fieldSchema.yupString(), fieldSchema.jsonSchema).defined(),\n internal_message: fieldSchema.yupString().defined(),\n internal_details: fieldSchema.yupRecord(fieldSchema.yupString(), fieldSchema.jsonSchema).defined(),\n }).defined()).nullable().defined(),\n\n status: fieldSchema.yupString().defined(),\n simple_status: fieldSchema.yupString().defined(),\n\n // These fields are overridden because we use concat to build the final schema for each state\n is_paused: fieldSchema.yupBoolean().oneOf([false]).defined(),\n has_rendered: fieldSchema.yupBoolean().oneOf([false]).defined(),\n has_delivered: fieldSchema.yupBoolean().oneOf([false]).defined(),\n}).defined();\n\n// Rendered output fields\nconst renderedFieldsSchema = emailOutboxBaseSchema.concat(fieldSchema.yupObject({\n started_rendering_at_millis: fieldSchema.yupNumber().defined(),\n rendered_at_millis: fieldSchema.yupNumber().defined(),\n subject: fieldSchema.yupString().defined(),\n html: fieldSchema.yupString().nullable().defined(),\n text: fieldSchema.yupString().nullable().defined(),\n is_transactional: fieldSchema.yupBoolean().defined(),\n is_high_priority: fieldSchema.yupBoolean().defined(),\n notification_category_id: fieldSchema.yupString().nullable().defined(),\n has_rendered: fieldSchema.yupBoolean().oneOf([true]).defined(),\n}).defined());\n\nconst startedSendingFieldsSchema = renderedFieldsSchema.concat(fieldSchema.yupObject({\n started_sending_at_millis: fieldSchema.yupNumber().defined(),\n}).defined());\n\n// Finished delivering tracking fields\nconst finishedDeliveringFieldsSchema = startedSendingFieldsSchema.concat(fieldSchema.yupObject({\n delivered_at_millis: fieldSchema.yupNumber().defined(),\n has_delivered: fieldSchema.yupBoolean().oneOf([true]).defined(),\n}).defined());\n\n\n// =============================== STATUS-SPECIFIC SCHEMAS ===============================\n\nconst pausedStatusSchema = emailOutboxBaseSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"paused\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"in-progress\"]).defined(),\n is_paused: fieldSchema.yupBoolean().oneOf([true]).defined(),\n}).defined());\n\nconst preparingStatusSchema = emailOutboxBaseSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"preparing\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"in-progress\"]).defined(),\n}).defined());\n\nconst renderingStatusSchema = emailOutboxBaseSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"rendering\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"in-progress\"]).defined(),\n started_rendering_at_millis: fieldSchema.yupNumber().defined(),\n}).defined());\n\nconst renderErrorStatusSchema = emailOutboxBaseSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"render-error\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"error\"]).defined(),\n started_rendering_at_millis: fieldSchema.yupNumber().defined(),\n rendered_at_millis: fieldSchema.yupNumber().defined(),\n render_error: fieldSchema.yupString().defined(),\n}).defined());\n\nconst scheduledStatusSchema = renderedFieldsSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"scheduled\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"in-progress\"]).defined(),\n has_rendered: fieldSchema.yupBoolean().oneOf([true]).defined(),\n}).defined());\n\nconst queuedStatusSchema = renderedFieldsSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"queued\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"in-progress\"]).defined(),\n has_rendered: fieldSchema.yupBoolean().oneOf([true]).defined(),\n}).defined());\n\nconst sendingStatusSchema = startedSendingFieldsSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"sending\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"in-progress\"]).defined(),\n}).defined());\n\nconst serverErrorStatusSchema = startedSendingFieldsSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"server-error\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"error\"]).defined(),\n error_at_millis: fieldSchema.yupNumber().defined(),\n server_error: fieldSchema.yupString().defined(),\n}).defined());\n\n// SKIPPED can happen at any time in the lifecycle (like PAUSED)\n// An email can be skipped before rendering (has_rendered: false) or after rendering (has_rendered: true)\n// e.g., user deleted after the email was rendered but before it was sent\nconst skippedStatusSchema = emailOutboxBaseSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"skipped\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"ok\"]).defined(),\n skipped_at_millis: fieldSchema.yupNumber().defined(),\n skipped_reason: fieldSchema.yupString().defined(),\n skipped_details: fieldSchema.yupRecord(fieldSchema.yupString(), fieldSchema.jsonSchema).defined(),\n // Override has_rendered to allow both true and false since email can be skipped at any time\n has_rendered: fieldSchema.yupBoolean().defined(),\n // These fields may or may not be present depending on when the email was skipped\n started_rendering_at_millis: fieldSchema.yupNumber().optional(),\n rendered_at_millis: fieldSchema.yupNumber().optional(),\n subject: fieldSchema.yupString().optional(),\n html: fieldSchema.yupString().nullable().optional(),\n text: fieldSchema.yupString().nullable().optional(),\n is_transactional: fieldSchema.yupBoolean().optional(),\n is_high_priority: fieldSchema.yupBoolean().optional(),\n notification_category_id: fieldSchema.yupString().nullable().optional(),\n started_sending_at_millis: fieldSchema.yupNumber().optional(),\n}).defined());\n\nconst bouncedStatusSchema = startedSendingFieldsSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"bounced\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"error\"]).defined(),\n bounced_at_millis: fieldSchema.yupNumber().defined(),\n}).defined());\n\nconst deliveryDelayedStatusSchema = startedSendingFieldsSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"delivery-delayed\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"ok\"]).defined(),\n delivery_delayed_at_millis: fieldSchema.yupNumber().defined(),\n}).defined());\n\nconst sentStatusSchema = finishedDeliveringFieldsSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"sent\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"ok\"]).defined(),\n // Whether this email's provider supports delivery tracking (opens, clicks, etc.)\n can_have_delivery_info: fieldSchema.yupBoolean().defined(),\n}).defined());\n\nconst openedStatusSchema = finishedDeliveringFieldsSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"opened\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"ok\"]).defined(),\n opened_at_millis: fieldSchema.yupNumber().defined(),\n can_have_delivery_info: fieldSchema.yupBoolean().oneOf([true]).defined(),\n}).defined());\n\nconst clickedStatusSchema = finishedDeliveringFieldsSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"clicked\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"ok\"]).defined(),\n clicked_at_millis: fieldSchema.yupNumber().defined(),\n can_have_delivery_info: fieldSchema.yupBoolean().oneOf([true]).defined(),\n}).defined());\n\nconst markedAsSpamStatusSchema = finishedDeliveringFieldsSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"marked-as-spam\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"ok\"]).defined(),\n marked_as_spam_at_millis: fieldSchema.yupNumber().defined(),\n can_have_delivery_info: fieldSchema.yupBoolean().oneOf([true]).defined(),\n}).defined());\n\n// Combined read schema using union\nexport const emailOutboxReadSchema = fieldSchema.yupUnion(\n pausedStatusSchema,\n preparingStatusSchema,\n renderingStatusSchema,\n renderErrorStatusSchema,\n scheduledStatusSchema,\n queuedStatusSchema,\n sendingStatusSchema,\n serverErrorStatusSchema,\n skippedStatusSchema,\n bouncedStatusSchema,\n deliveryDelayedStatusSchema,\n sentStatusSchema,\n openedStatusSchema,\n clickedStatusSchema,\n markedAsSpamStatusSchema\n);\n\n// Update schema for PATCH endpoint\nexport const emailOutboxUpdateSchema = fieldSchema.yupObject({\n tsx_source: fieldSchema.yupString().optional(),\n theme_id: fieldSchema.yupString().nullable().optional(),\n to: recipientSchema.optional(),\n variables: fieldSchema.yupRecord(fieldSchema.yupString(), fieldSchema.jsonSchema).optional(),\n skip_deliverability_check: fieldSchema.yupBoolean().optional(),\n scheduled_at_millis: fieldSchema.yupNumber().optional(),\n is_paused: fieldSchema.yupBoolean().optional(),\n cancel: fieldSchema.yupBoolean().oneOf([true]).optional(),\n}).defined();\n\nexport const emailOutboxCrud = createCrud({\n serverReadSchema: emailOutboxReadSchema,\n serverUpdateSchema: emailOutboxUpdateSchema,\n docs: {\n serverRead: {\n tags: [\"Emails\"],\n summary: \"Get email outbox entry\",\n description: \"Gets a single email from the outbox by ID.\",\n },\n serverUpdate: {\n tags: [\"Emails\"],\n summary: \"Update email outbox entry\",\n description: \"Updates an email in the outbox. Can be used to edit email content, pause/resume, or cancel emails. Only emails in editable states (`paused`, `preparing`, `rendering`, `render-error`, `scheduled`, `queued`, `server-error`) can be modified.\",\n },\n serverList: {\n tags: [\"Emails\"],\n summary: \"List email outbox\",\n description: \"Lists all emails in the outbox with optional filtering by status, simple_status, or user_id.\",\n },\n },\n});\n\nexport type EmailOutboxCrud = CrudTypeOf<typeof emailOutboxCrud>;\n\n"],"mappings":"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"}
@@ -3,8 +3,8 @@ const require_chunk = require('../chunk-BE-pF4vm.js');
3
3
  let ___utils_errors_js = require("../utils/errors.js");
4
4
  let ___utils_objects_js = require("../utils/objects.js");
5
5
  let ___utils_results_js = require("../utils/results.js");
6
- let ___utils_urls_js = require("../utils/urls.js");
7
6
  let ___known_errors_js = require("../known-errors.js");
7
+ let ___utils_urls_js = require("../utils/urls.js");
8
8
  let ___sessions_js = require("../sessions.js");
9
9
  let __client_interface_js = require("./client-interface.js");
10
10
  let ___helpers_vault_client_side_js = require("../helpers/vault/client-side.js");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hexclave/shared",
3
- "version": "1.0.21",
3
+ "version": "1.0.22",
4
4
  "repository": "https://github.com/hexclave/hexclave",
5
5
  "files": [
6
6
  "README.md",
@@ -19,7 +19,10 @@ export function buildSkillSitePrompt(docsIndexPromptValue = docsIndexPrompt) {
19
19
 
20
20
  ## Docs
21
21
 
22
- The full docs sidebar — generated from the live navigation. Fetch any of these directly:
22
+ The full docs sidebar — generated from the live navigation. Fetch any of these directly.
23
+
24
+ To retrieve docs as Markdown, use these endpoints:
25
+ - For a specific docs page, append \`.md\` to the canonical docs URL. For example, fetch \`https://docs.hexclave.com/guides/getting-started/setup.md\` for the Markdown version of \`https://docs.hexclave.com/guides/getting-started/setup\`.
23
26
 
24
27
  ${docsIndexPromptValue}
25
28
 
@@ -1091,10 +1091,11 @@ export class HexclaveAdminInterface extends HexclaveServerInterface {
1091
1091
  return await response.json();
1092
1092
  }
1093
1093
 
1094
- async listOutboxEmails(options?: { status?: string, simple_status?: string, limit?: number, cursor?: string }): Promise<EmailOutboxCrud["Server"]["List"]> {
1094
+ async listOutboxEmails(options?: { status?: string, simple_status?: string, user_id?: string, limit?: number, cursor?: string }): Promise<EmailOutboxCrud["Server"]["List"]> {
1095
1095
  const qs = new URLSearchParams();
1096
1096
  if (options?.status) qs.set('status', options.status);
1097
1097
  if (options?.simple_status) qs.set('simple_status', options.simple_status);
1098
+ if (options?.user_id) qs.set('user_id', options.user_id);
1098
1099
  if (options?.limit !== undefined) qs.set('limit', options.limit.toString());
1099
1100
  if (options?.cursor) qs.set('cursor', options.cursor);
1100
1101
  const response = await this.sendServerRequest(
@@ -254,7 +254,7 @@ export const emailOutboxCrud = createCrud({
254
254
  serverList: {
255
255
  tags: ["Emails"],
256
256
  summary: "List email outbox",
257
- description: "Lists all emails in the outbox with optional filtering by status or simple_status.",
257
+ description: "Lists all emails in the outbox with optional filtering by status, simple_status, or user_id.",
258
258
  },
259
259
  },
260
260
  });