@tickernelz/paperclip-pro 2026.1008.1 → 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
@@ -10101,7 +10101,7 @@ function requireTitleOrDescription(value, ctx) {
10101
10101
  ctx.addIssue({ code: z19.ZodIssueCode.custom, path: ["title"], message: "Provide a title or task description" });
10102
10102
  }
10103
10103
  }
10104
- var issueBlockedInboxStateSchema, issueBlockedInboxSeveritySchema, issueBlockedInboxReasonSchema, issueBlockedInboxIssueRefSchema, issueBlockedInboxAttentionSchema, ISSUE_EXECUTION_WORKSPACE_PREFERENCES, executionWorkspaceStrategySchema, ipv4CidrPattern, protectedTaskEgressCidrs, issueExecutionWorkspaceSettingsSchema, issueRunModelOverrideSubtaskScopeSchema, issueRunModelOverrideInheritanceStateSchema, issueAssigneeAdapterOverridesSchema, runModelOverrideValue, issueRunModelOverrideUpdateSchema, issueExecutionStagePrincipalBaseSchema, issueExecutionStagePrincipalSchema, issueExecutionStageParticipantSchema, issueExecutionStageSchema, issueExecutionMonitorPolicySchema, issueExecutionPolicySchema, issueExecutionMonitorStateSchema, issueReviewRequestSchema, issueExecutionStateSchema, issueRecoveryActionReadModelSchema, RESOLVE_ISSUE_RECOVERY_ACTION_OUTCOMES, retryWorkspaceExportSchema, resolveIssueRecoveryActionSchema, issueRequestDepthInputSchema, createIssueBaseSchema, createIssueDuplicateGuardSchema, onboardingFirstTaskMarkerSchema, createIssueInputSchema, createIssueSchema, setIssueTitleSchema, upsertIssueWatchdogSchema, createChildIssueSchema, createAcceptedPlanDecompositionSchema, issueCountFilterIdSchema, issueCountFlagQuerySchema, issueCountQuerySchema, createIssueLabelSchema, issueCommentAttachmentIdsSchema, updateIssueSchema, stalledReviewDecisionSchema, checkoutIssueSchema, commentMetadataLabelSchema, commentMetadataTextSchema, issueCommentAuthorTypeSchema, issueCommentPresentationSchema, issueCommentMetadataBaseRowSchema, issueCommentMetadataTextRowSchema, issueCommentMetadataCodeRowSchema, issueCommentMetadataKeyValueRowSchema, issueCommentMetadataIssueLinkRowSchema, issueCommentMetadataAgentLinkRowSchema, issueCommentMetadataRunLinkRowSchema, issueCommentMetadataRowSchema, issueCommentMetadataSectionSchema, issueCommentMetadataSchema, addIssueCommentSchema, issueThreadInteractionStatusSchema, issueThreadInteractionKindSchema, issueThreadInteractionCanonicalResolverPolicySchema, issueThreadInteractionResolverPolicySchema, issueThreadInteractionResolverPolicyProvenanceSchema, issueThreadInteractionEffectiveResolverPolicySourceSchema, issueThreadInteractionContinuationPolicySchema, connectionIntentPhaseSchema, connectionIntentBrandAssetSchema, connectionIntentPayloadSchema, connectionIntentResultSchema, issueDocumentKeySchema, suggestedTaskDraftSchema, suggestTasksPayloadSchema, suggestTasksResultCreatedTaskSchema, suggestTasksResultSchema, askUserQuestionsQuestionOptionSchema, askUserQuestionsQuestionSchema, paperclipQuestionOptionSchema, paperclipQuestionSchema, paperclipQuestionSetPayloadSchema, askUserQuestionsPayloadFields, askUserQuestionsPayloadSchema, askUserQuestionsAnswerSchema, askUserQuestionsResultSchema, requestConfirmationHrefSchema, requestConfirmationTargetBaseSchema, requestConfirmationIssueDocumentTargetSchema, requestConfirmationCustomTargetSchema, requestConfirmationTargetSchema, requestConfirmationToolActionPayloadSchema, requestConfirmationSecretProposalPayloadSchema, requestConfirmationPayloadSchema, requestCheckboxConfirmationOptionSchema, requestCheckboxConfirmationPayloadSchema, requestConfirmationResumeFailureSchema, requestConfirmationToolActionResultSchema, requestConfirmationSecretProposalResultSchema, requestConfirmationResultSchema, requestCheckboxConfirmationResultSchema, requestItemVerdictValueSchema, requestItemVerdictsItemSchema, requestItemVerdictsPayloadSchema, requestItemVerdictsResultItemSchema, requestItemVerdictsResultSchema, createIssueThreadInteractionCommon, createLegacyAskUserQuestionsPayloadSchema, createAskUserQuestionsPayloadSchema, createIssueThreadInteractionSchema, acceptIssueThreadInteractionSchema, resolveConfirmationFromCommentSchema, rejectIssueThreadInteractionSchema, cancelIssueThreadInteractionSchema, skipIssueThreadInteractionSchema, withdrawIssueThreadInteractionSchema, respondIssueThreadInteractionSchema, submitIssueThreadInteractionVerdictsSchema, linkIssueApprovalSchema, createIssueAttachmentMetadataSchema, ISSUE_DOCUMENT_FORMATS, issueDocumentFormatSchema, upsertIssueDocumentSchema, restoreIssueDocumentRevisionSchema;
10104
+ var issueBlockedInboxStateSchema, issueBlockedInboxSeveritySchema, issueBlockedInboxReasonSchema, issueBlockedInboxIssueRefSchema, issueBlockedInboxAttentionSchema, ISSUE_EXECUTION_WORKSPACE_PREFERENCES, executionWorkspaceStrategySchema, ipv4CidrPattern, protectedTaskEgressCidrs, issueExecutionWorkspaceSettingsSchema, issueRunModelOverrideSubtaskScopeSchema, issueRunModelOverrideInheritanceStateSchema, issueAssigneeAdapterOverridesSchema, runModelOverrideValue, issueRunModelOverrideUpdateSchema, issueExecutionStagePrincipalBaseSchema, issueExecutionStagePrincipalSchema, issueExecutionStageParticipantSchema, issueExecutionStageSchema, issueExecutionMonitorPolicySchema, issueExecutionPolicySchema, issueExecutionMonitorStateSchema, issueReviewRequestSchema, issueExecutionStateSchema, issueRecoveryActionReadModelSchema, RESOLVE_ISSUE_RECOVERY_ACTION_OUTCOMES, retryWorkspaceExportSchema, resolveIssueRecoveryActionSchema, issueRequestDepthInputSchema, createIssueBaseSchema, createIssueDuplicateGuardSchema, onboardingFirstTaskMarkerSchema, createIssueInputSchema, createIssueSchema, setIssueTitleSchema, upsertIssueWatchdogSchema, createChildIssueSchema, createAcceptedPlanDecompositionSchema, issueCountFilterIdSchema, issueCountFlagQuerySchema, issueCountQuerySchema, createIssueLabelSchema, issueCommentAttachmentIdsSchema, updateIssueSchema, stalledReviewDecisionSchema, checkoutIssueSchema, commentMetadataLabelSchema, commentMetadataTextSchema, issueCommentAuthorTypeSchema, issueCommentPresentationSchema, issueCommentMetadataBaseRowSchema, issueCommentMetadataTextRowSchema, issueCommentMetadataCodeRowSchema, issueCommentMetadataKeyValueRowSchema, issueCommentMetadataIssueLinkRowSchema, issueCommentMetadataAgentLinkRowSchema, issueCommentMetadataRunLinkRowSchema, issueCommentMetadataRowSchema, issueCommentMetadataSectionSchema, issueCommentMetadataSchema, addIssueCommentSchema, issueThreadInteractionStatusSchema, issueThreadInteractionKindSchema, issueThreadInteractionCanonicalResolverPolicySchema, issueThreadInteractionResolverPolicySchema, issueThreadInteractionResolverPolicyProvenanceSchema, issueThreadInteractionEffectiveResolverPolicySourceSchema, issueThreadInteractionContinuationPolicySchema, connectionIntentPhaseSchema, connectionIntentBrandAssetSchema, connectionIntentPayloadSchema, connectionIntentResultSchema, issueDocumentKeySchema, suggestedTaskDraftSchema, suggestTasksPayloadSchema, suggestTasksResultCreatedTaskSchema, suggestTasksResultSchema, askUserQuestionsQuestionOptionSchema, askUserQuestionsQuestionSchema, paperclipQuestionOptionSchema, paperclipQuestionSchema, paperclipQuestionSetPayloadSchema, askUserQuestionsPayloadFields, askUserQuestionsPayloadSchema, INTERACTION_NOTE_MAX_LENGTH, interactionNoteSchema, askUserQuestionsAnswerSchema, askUserQuestionsResultSchema, requestConfirmationHrefSchema, requestConfirmationTargetBaseSchema, requestConfirmationIssueDocumentTargetSchema, requestConfirmationCustomTargetSchema, requestConfirmationTargetSchema, requestConfirmationToolActionPayloadSchema, requestConfirmationSecretProposalPayloadSchema, requestConfirmationPayloadSchema, requestCheckboxConfirmationOptionSchema, requestCheckboxConfirmationPayloadSchema, requestConfirmationResumeFailureSchema, requestConfirmationToolActionResultSchema, requestConfirmationSecretProposalResultSchema, requestConfirmationResultSchema, requestCheckboxConfirmationResultSchema, requestItemVerdictValueSchema, requestItemVerdictsItemSchema, requestItemVerdictsPayloadSchema, requestItemVerdictsResultItemSchema, requestItemVerdictsResultSchema, createIssueThreadInteractionCommon, createLegacyAskUserQuestionsPayloadSchema, createAskUserQuestionsPayloadSchema, createIssueThreadInteractionSchema, acceptIssueThreadInteractionSchema, resolveConfirmationFromCommentSchema, rejectIssueThreadInteractionSchema, cancelIssueThreadInteractionSchema, skipIssueThreadInteractionSchema, withdrawIssueThreadInteractionSchema, respondIssueThreadInteractionSchema, submitIssueThreadInteractionVerdictsSchema, linkIssueApprovalSchema, createIssueAttachmentMetadataSchema, ISSUE_DOCUMENT_FORMATS, issueDocumentFormatSchema, upsertIssueDocumentSchema, restoreIssueDocumentRevisionSchema;
10105
10105
  var init_issue = __esm({
10106
10106
  "../packages/shared/src/validators/issue.ts"() {
10107
10107
  "use strict";
@@ -11061,10 +11061,15 @@ var init_issue = __esm({
11061
11061
  }
11062
11062
  }
11063
11063
  });
11064
+ INTERACTION_NOTE_MAX_LENGTH = 2e4;
11065
+ interactionNoteSchema = multilineTextSchema.pipe(z19.string().trim().max(INTERACTION_NOTE_MAX_LENGTH)).nullable().optional().describe(
11066
+ "Optional Markdown note from the resolving board user, up to 20000 characters. Uploaded attachments appear as Markdown links inside it. Agents cannot send a note."
11067
+ );
11064
11068
  askUserQuestionsAnswerSchema = z19.object({
11065
11069
  questionId: z19.string().trim().min(1).max(160),
11066
11070
  optionIds: z19.array(z19.string().trim().min(1).max(160)).max(129),
11067
- otherText: multilineTextSchema.pipe(z19.string().trim().max(1e5)).nullable().optional()
11071
+ otherText: multilineTextSchema.pipe(z19.string().trim().max(1e5)).nullable().optional(),
11072
+ note: interactionNoteSchema
11068
11073
  });
11069
11074
  askUserQuestionsResultSchema = z19.object({
11070
11075
  version: z19.literal(1),
@@ -11284,6 +11289,7 @@ var init_issue = __esm({
11284
11289
  "addressee_deleted"
11285
11290
  ]),
11286
11291
  reason: z19.string().trim().max(4e3).nullable().optional(),
11292
+ note: interactionNoteSchema,
11287
11293
  commentId: z19.string().guid().nullable().optional(),
11288
11294
  supersededByInteractionId: z19.string().guid().nullable().optional(),
11289
11295
  staleTarget: requestConfirmationTargetSchema.nullable().optional(),
@@ -11549,7 +11555,8 @@ var init_issue = __esm({
11549
11555
  acceptIssueThreadInteractionSchema = z19.object({
11550
11556
  rememberAction: z19.boolean().optional(),
11551
11557
  selectedClientKeys: z19.array(z19.string().trim().min(1).max(120)).min(1).max(50).optional(),
11552
- selectedOptionIds: z19.array(z19.string().trim().min(1).max(120)).max(REQUEST_CHECKBOX_CONFIRMATION_OPTION_LIMIT).optional()
11558
+ selectedOptionIds: z19.array(z19.string().trim().min(1).max(120)).max(REQUEST_CHECKBOX_CONFIRMATION_OPTION_LIMIT).optional(),
11559
+ note: interactionNoteSchema
11553
11560
  }).superRefine((value, ctx) => {
11554
11561
  const seenClientKeys = /* @__PURE__ */ new Set();
11555
11562
  for (const [index130, clientKey] of (value.selectedClientKeys ?? []).entries()) {
@@ -11590,7 +11597,8 @@ var init_issue = __esm({
11590
11597
  }
11591
11598
  });
11592
11599
  rejectIssueThreadInteractionSchema = z19.object({
11593
- reason: z19.string().trim().max(4e3).optional()
11600
+ reason: z19.string().trim().max(4e3).optional(),
11601
+ note: interactionNoteSchema
11594
11602
  });
11595
11603
  cancelIssueThreadInteractionSchema = z19.object({
11596
11604
  reason: z19.string().trim().max(4e3).optional()
@@ -14711,7 +14719,7 @@ var init_smoke_lab = __esm({
14711
14719
  });
14712
14720
 
14713
14721
  // ../packages/shared/src/types/instance.ts
14714
- 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;
14715
14723
  var init_instance = __esm({
14716
14724
  "../packages/shared/src/types/instance.ts"() {
14717
14725
  "use strict";
@@ -14731,6 +14739,17 @@ var init_instance = __esm({
14731
14739
  maxAudioSeconds: 600,
14732
14740
  sttWaitSeconds: 15
14733
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
+ };
14734
14753
  DEFAULT_MESSAGE_DELIVERY = "steer";
14735
14754
  }
14736
14755
  });
@@ -15279,7 +15298,7 @@ function isSpeechToTextBaseUrl(value) {
15279
15298
  if (url.username || url.password || url.search || url.hash) return false;
15280
15299
  return ["/", "/v1", "/v1/"].includes(url.pathname);
15281
15300
  }
15282
- 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;
15283
15302
  var init_instance2 = __esm({
15284
15303
  "../packages/shared/src/validators/instance.ts"() {
15285
15304
  "use strict";
@@ -15307,6 +15326,15 @@ var init_instance2 = __esm({
15307
15326
  }).strict().refine((value) => !value.enabled || value.baseUrl !== "" && value.model !== "" && value.apiKeyEnvVar !== "", {
15308
15327
  message: "Speech-to-text needs a base URL, a model and an API key environment variable before it can be enabled"
15309
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();
15310
15338
  instanceGeneralSettingsSchema = z36.object({
15311
15339
  censorUsernameInLogs: z36.boolean().default(false),
15312
15340
  feedbackDataSharingPreference: feedbackDataSharingPreferenceSchema.default(
@@ -15315,6 +15343,8 @@ var init_instance2 = __esm({
15315
15343
  backupRetention: backupRetentionPolicySchema.default(DEFAULT_BACKUP_RETENTION),
15316
15344
  defaultMessageDelivery: messageDeliverySchema.default(DEFAULT_MESSAGE_DELIVERY),
15317
15345
  speechToText: speechToTextSettingsSchema.default(SPEECH_TO_TEXT_DEFAULTS),
15346
+ attachmentMaxMegabytes: attachmentMaxMegabytesSchema.nullable().default(null),
15347
+ attachmentRetention: attachmentRetentionSettingsSchema.default(DEFAULT_ATTACHMENT_RETENTION),
15318
15348
  // Execution policy. Absent/"any" = unrestricted; "kubernetes" forces the
15319
15349
  // Kubernetes sandbox provider and denies local/ssh execution (cloud_tenant).
15320
15350
  executionMode: z36.enum(["kubernetes", "any"]).optional()
@@ -25438,7 +25468,8 @@ var init_assets = __esm({
25438
25468
  createdByAgentId: uuid5("created_by_agent_id").references(() => agents.id),
25439
25469
  createdByUserId: text10("created_by_user_id"),
25440
25470
  createdAt: timestamp5("created_at", { withTimezone: true }).notNull().defaultNow(),
25441
- updatedAt: timestamp5("updated_at", { withTimezone: true }).notNull().defaultNow()
25471
+ updatedAt: timestamp5("updated_at", { withTimezone: true }).notNull().defaultNow(),
25472
+ purgedAt: timestamp5("purged_at", { withTimezone: true })
25442
25473
  },
25443
25474
  (table) => ({
25444
25475
  companyCreatedIdx: index3("assets_company_created_idx").on(table.companyId, table.createdAt),
@@ -25836,6 +25867,7 @@ var init_heartbeat_runs = __esm({
25836
25867
  sql3`(${table.contextSnapshot} ->> 'issueId')`,
25837
25868
  table.createdAt.desc()
25838
25869
  ),
25870
+ companyCtxIssueRedactionIdx: index8("heartbeat_runs_company_ctx_issue_redaction_idx").on(table.companyId, sql3`(${table.contextSnapshot} ->> 'issueId')`).where(sql3`${table.contextSnapshot} ? 'paperclipSecretRedactions'`),
25839
25871
  companyCtxTaskCreatedIdx: index8("heartbeat_runs_company_ctx_task_created_idx").on(
25840
25872
  table.companyId,
25841
25873
  sql3`(${table.contextSnapshot} ->> 'taskId')`,
@@ -26274,6 +26306,7 @@ var init_instance_settings = __esm({
26274
26306
  defaultEnvironmentId: uuid16("default_environment_id").references(() => environments.id, { onDelete: "set null" }),
26275
26307
  general: jsonb11("general").$type().notNull().default({}),
26276
26308
  experimental: jsonb11("experimental").$type().notNull().default({}),
26309
+ attachmentRetentionLastRun: jsonb11("attachment_retention_last_run").$type(),
26277
26310
  createdAt: timestamp17("created_at", { withTimezone: true }).notNull().defaultNow(),
26278
26311
  updatedAt: timestamp17("updated_at", { withTimezone: true }).notNull().defaultNow()
26279
26312
  },
@@ -31516,7 +31549,13 @@ var init_activity_log = __esm({
31516
31549
  table.createdAt
31517
31550
  ),
31518
31551
  runIdIdx: index71("activity_log_run_id_idx").on(table.runId),
31519
- entityIdx: index71("activity_log_entity_type_id_idx").on(table.entityType, table.entityId)
31552
+ entityIdx: index71("activity_log_entity_type_id_idx").on(table.entityType, table.entityId),
31553
+ companyEntityRunIdx: index71("activity_log_company_entity_run_idx").on(
31554
+ table.companyId,
31555
+ table.entityType,
31556
+ table.entityId,
31557
+ table.runId
31558
+ )
31520
31559
  })
31521
31560
  );
31522
31561
  }
@@ -32925,7 +32964,8 @@ var init_heartbeat_run_events = __esm({
32925
32964
  runSourceEventUq: uniqueIndex71("heartbeat_run_events_run_source_event_uq").on(table.runId, table.sourceEventId).where(sql36`${table.sourceEventId} is not null`),
32926
32965
  runSourceSeqUq: uniqueIndex71("heartbeat_run_events_run_source_seq_uq").on(table.runId, table.sourceInstanceId, table.sourceSeq).where(sql36`${table.sourceInstanceId} is not null and ${table.sourceSeq} is not null`),
32927
32966
  companyRunIdx: index95("heartbeat_run_events_company_run_idx").on(table.companyId, table.runId),
32928
- companyCreatedIdx: index95("heartbeat_run_events_company_created_idx").on(table.companyId, table.createdAt)
32967
+ companyCreatedIdx: index95("heartbeat_run_events_company_created_idx").on(table.companyId, table.createdAt),
32968
+ retryExhaustedRunIdx: index95("heartbeat_run_events_retry_exhausted_run_idx").on(table.runId, table.id).where(sql36`${table.eventType} = 'lifecycle' and ${table.message} like 'Bounded retry exhausted%'`)
32929
32969
  })
32930
32970
  );
32931
32971
  }