@tickernelz/paperclip-pro 2026.1008.2 → 2026.1008.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -14719,7 +14719,7 @@ var init_smoke_lab = __esm({
14719
14719
  });
14720
14720
 
14721
14721
  // ../packages/shared/src/types/instance.ts
14722
- var DAILY_RETENTION_PRESETS, WEEKLY_RETENTION_PRESETS, MONTHLY_RETENTION_PRESETS, DEFAULT_BACKUP_RETENTION, SPEECH_TO_TEXT_DEFAULTS, DEFAULT_MESSAGE_DELIVERY;
14722
+ var DAILY_RETENTION_PRESETS, WEEKLY_RETENTION_PRESETS, MONTHLY_RETENTION_PRESETS, DEFAULT_BACKUP_RETENTION, SPEECH_TO_TEXT_DEFAULTS, ATTACHMENT_MAX_MEGABYTES_MIN, ATTACHMENT_MAX_MEGABYTES_MAX, ATTACHMENT_ORPHAN_AFTER_DAYS_MIN, ATTACHMENT_ORPHAN_AFTER_DAYS_MAX, ATTACHMENT_CLOSED_TASK_AFTER_DAYS_MIN, ATTACHMENT_CLOSED_TASK_AFTER_DAYS_MAX, DEFAULT_ATTACHMENT_RETENTION, DEFAULT_MESSAGE_DELIVERY;
14723
14723
  var init_instance = __esm({
14724
14724
  "../packages/shared/src/types/instance.ts"() {
14725
14725
  "use strict";
@@ -14739,6 +14739,17 @@ var init_instance = __esm({
14739
14739
  maxAudioSeconds: 600,
14740
14740
  sttWaitSeconds: 15
14741
14741
  };
14742
+ ATTACHMENT_MAX_MEGABYTES_MIN = 1;
14743
+ ATTACHMENT_MAX_MEGABYTES_MAX = 500;
14744
+ ATTACHMENT_ORPHAN_AFTER_DAYS_MIN = 1;
14745
+ ATTACHMENT_ORPHAN_AFTER_DAYS_MAX = 365;
14746
+ ATTACHMENT_CLOSED_TASK_AFTER_DAYS_MIN = 7;
14747
+ ATTACHMENT_CLOSED_TASK_AFTER_DAYS_MAX = 3650;
14748
+ DEFAULT_ATTACHMENT_RETENTION = {
14749
+ enabled: false,
14750
+ orphanAfterDays: 7,
14751
+ closedTasks: { enabled: false, afterDays: 90 }
14752
+ };
14742
14753
  DEFAULT_MESSAGE_DELIVERY = "steer";
14743
14754
  }
14744
14755
  });
@@ -15287,7 +15298,7 @@ function isSpeechToTextBaseUrl(value) {
15287
15298
  if (url.username || url.password || url.search || url.hash) return false;
15288
15299
  return ["/", "/v1", "/v1/"].includes(url.pathname);
15289
15300
  }
15290
- var messageDeliverySchema, backupRetentionPolicySchema, speechToTextSettingsSchema, instanceGeneralSettingsSchema, patchInstanceGeneralSettingsSchema, instanceExperimentalSettingsSchema, patchInstanceExperimentalSettingsSchema, managedSettingMetadataSchema, instanceExperimentalSettingsWithManagedSchema, patchInstanceSettingsSchema, MAX_TASK_DRAIN_TTL_MS, startTaskDrainRequestSchema, instanceSettingsSchema;
15301
+ var messageDeliverySchema, backupRetentionPolicySchema, speechToTextSettingsSchema, attachmentMaxMegabytesSchema, attachmentRetentionSettingsSchema, instanceGeneralSettingsSchema, patchInstanceGeneralSettingsSchema, instanceExperimentalSettingsSchema, patchInstanceExperimentalSettingsSchema, managedSettingMetadataSchema, instanceExperimentalSettingsWithManagedSchema, patchInstanceSettingsSchema, MAX_TASK_DRAIN_TTL_MS, startTaskDrainRequestSchema, instanceSettingsSchema;
15291
15302
  var init_instance2 = __esm({
15292
15303
  "../packages/shared/src/validators/instance.ts"() {
15293
15304
  "use strict";
@@ -15315,6 +15326,15 @@ var init_instance2 = __esm({
15315
15326
  }).strict().refine((value) => !value.enabled || value.baseUrl !== "" && value.model !== "" && value.apiKeyEnvVar !== "", {
15316
15327
  message: "Speech-to-text needs a base URL, a model and an API key environment variable before it can be enabled"
15317
15328
  });
15329
+ attachmentMaxMegabytesSchema = z36.number().int().min(ATTACHMENT_MAX_MEGABYTES_MIN).max(ATTACHMENT_MAX_MEGABYTES_MAX);
15330
+ attachmentRetentionSettingsSchema = z36.object({
15331
+ enabled: z36.boolean().default(DEFAULT_ATTACHMENT_RETENTION.enabled),
15332
+ orphanAfterDays: z36.number().int().min(ATTACHMENT_ORPHAN_AFTER_DAYS_MIN).max(ATTACHMENT_ORPHAN_AFTER_DAYS_MAX).default(DEFAULT_ATTACHMENT_RETENTION.orphanAfterDays),
15333
+ closedTasks: z36.object({
15334
+ enabled: z36.boolean().default(DEFAULT_ATTACHMENT_RETENTION.closedTasks.enabled),
15335
+ afterDays: z36.number().int().min(ATTACHMENT_CLOSED_TASK_AFTER_DAYS_MIN).max(ATTACHMENT_CLOSED_TASK_AFTER_DAYS_MAX).default(DEFAULT_ATTACHMENT_RETENTION.closedTasks.afterDays)
15336
+ }).strict().default(DEFAULT_ATTACHMENT_RETENTION.closedTasks)
15337
+ }).strict();
15318
15338
  instanceGeneralSettingsSchema = z36.object({
15319
15339
  censorUsernameInLogs: z36.boolean().default(false),
15320
15340
  feedbackDataSharingPreference: feedbackDataSharingPreferenceSchema.default(
@@ -15323,6 +15343,8 @@ var init_instance2 = __esm({
15323
15343
  backupRetention: backupRetentionPolicySchema.default(DEFAULT_BACKUP_RETENTION),
15324
15344
  defaultMessageDelivery: messageDeliverySchema.default(DEFAULT_MESSAGE_DELIVERY),
15325
15345
  speechToText: speechToTextSettingsSchema.default(SPEECH_TO_TEXT_DEFAULTS),
15346
+ attachmentMaxMegabytes: attachmentMaxMegabytesSchema.nullable().default(null),
15347
+ attachmentRetention: attachmentRetentionSettingsSchema.default(DEFAULT_ATTACHMENT_RETENTION),
15326
15348
  // Execution policy. Absent/"any" = unrestricted; "kubernetes" forces the
15327
15349
  // Kubernetes sandbox provider and denies local/ssh execution (cloud_tenant).
15328
15350
  executionMode: z36.enum(["kubernetes", "any"]).optional()
@@ -25446,7 +25468,8 @@ var init_assets = __esm({
25446
25468
  createdByAgentId: uuid5("created_by_agent_id").references(() => agents.id),
25447
25469
  createdByUserId: text10("created_by_user_id"),
25448
25470
  createdAt: timestamp5("created_at", { withTimezone: true }).notNull().defaultNow(),
25449
- updatedAt: timestamp5("updated_at", { withTimezone: true }).notNull().defaultNow()
25471
+ updatedAt: timestamp5("updated_at", { withTimezone: true }).notNull().defaultNow(),
25472
+ purgedAt: timestamp5("purged_at", { withTimezone: true })
25450
25473
  },
25451
25474
  (table) => ({
25452
25475
  companyCreatedIdx: index3("assets_company_created_idx").on(table.companyId, table.createdAt),
@@ -26283,6 +26306,7 @@ var init_instance_settings = __esm({
26283
26306
  defaultEnvironmentId: uuid16("default_environment_id").references(() => environments.id, { onDelete: "set null" }),
26284
26307
  general: jsonb11("general").$type().notNull().default({}),
26285
26308
  experimental: jsonb11("experimental").$type().notNull().default({}),
26309
+ attachmentRetentionLastRun: jsonb11("attachment_retention_last_run").$type(),
26286
26310
  createdAt: timestamp17("created_at", { withTimezone: true }).notNull().defaultNow(),
26287
26311
  updatedAt: timestamp17("updated_at", { withTimezone: true }).notNull().defaultNow()
26288
26312
  },