evo360-types 1.3.244 → 1.3.249

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.
@@ -10879,6 +10879,7 @@ export declare const zServiceInvoiceSchema: z.ZodObject<{
10879
10879
  label: z.ZodOptional<z.ZodString>;
10880
10880
  ref: z.ZodOptional<z.ZodAny>;
10881
10881
  }, z.ZodTypeAny, "passthrough">>, "many">>;
10882
+ externalLinkKeys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
10882
10883
  evo_chat: z.ZodOptional<z.ZodObject<{
10883
10884
  notifications: z.ZodOptional<z.ZodArray<z.ZodObject<{
10884
10885
  at: z.ZodEffects<z.ZodDate, Date, unknown>;
@@ -11297,6 +11298,7 @@ export declare const zServiceInvoiceSchema: z.ZodObject<{
11297
11298
  label: z.ZodOptional<z.ZodString>;
11298
11299
  ref: z.ZodOptional<z.ZodAny>;
11299
11300
  }, z.ZodTypeAny, "passthrough">>, "many">>;
11301
+ externalLinkKeys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
11300
11302
  evo_chat: z.ZodOptional<z.ZodObject<{
11301
11303
  notifications: z.ZodOptional<z.ZodArray<z.ZodObject<{
11302
11304
  at: z.ZodEffects<z.ZodDate, Date, unknown>;
@@ -11715,6 +11717,7 @@ export declare const zServiceInvoiceSchema: z.ZodObject<{
11715
11717
  label: z.ZodOptional<z.ZodString>;
11716
11718
  ref: z.ZodOptional<z.ZodAny>;
11717
11719
  }, z.ZodTypeAny, "passthrough">>, "many">>;
11720
+ externalLinkKeys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
11718
11721
  evo_chat: z.ZodOptional<z.ZodObject<{
11719
11722
  notifications: z.ZodOptional<z.ZodArray<z.ZodObject<{
11720
11723
  at: z.ZodEffects<z.ZodDate, Date, unknown>;
@@ -570,6 +570,7 @@ exports.zServiceInvoiceSchema = zod_schemas_1.zFireDocSchema
570
570
  taker: exports.zInvoiceTakerRefSchema,
571
571
  source: exports.zInvoiceSourceRefSchema.optional(),
572
572
  externalLinks: zod_1.z.array(zod_schemas_2.zExternalLinkSchema).optional(),
573
+ externalLinkKeys: zod_1.z.array(zod_1.z.string()).optional(),
573
574
  evo_chat: zod_1.z
574
575
  .object({
575
576
  notifications: zod_1.z
@@ -621,6 +621,7 @@ export const zServiceInvoiceSchema = zFireDocSchema
621
621
  taker: zInvoiceTakerRefSchema,
622
622
  source: zInvoiceSourceRefSchema.optional(),
623
623
  externalLinks: z.array(zExternalLinkSchema).optional(),
624
+ externalLinkKeys: z.array(z.string()).optional(),
624
625
  evo_chat: z
625
626
  .object({
626
627
  notifications: z
@@ -484,6 +484,7 @@ export declare const zTaskSchema: z.ZodObject<{
484
484
  label: z.ZodOptional<z.ZodString>;
485
485
  ref: z.ZodOptional<z.ZodAny>;
486
486
  }, z.ZodTypeAny, "passthrough">>, "many">>;
487
+ externalLinkKeys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
487
488
  idempotency_key: z.ZodOptional<z.ZodString>;
488
489
  dedup: z.ZodOptional<z.ZodObject<{
489
490
  enabled: z.ZodBoolean;
@@ -905,6 +906,7 @@ export declare const zTaskSchema: z.ZodObject<{
905
906
  label: z.ZodOptional<z.ZodString>;
906
907
  ref: z.ZodOptional<z.ZodAny>;
907
908
  }, z.ZodTypeAny, "passthrough">>, "many">>;
909
+ externalLinkKeys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
908
910
  idempotency_key: z.ZodOptional<z.ZodString>;
909
911
  dedup: z.ZodOptional<z.ZodObject<{
910
912
  enabled: z.ZodBoolean;
@@ -1326,6 +1328,7 @@ export declare const zTaskSchema: z.ZodObject<{
1326
1328
  label: z.ZodOptional<z.ZodString>;
1327
1329
  ref: z.ZodOptional<z.ZodAny>;
1328
1330
  }, z.ZodTypeAny, "passthrough">>, "many">>;
1331
+ externalLinkKeys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1329
1332
  idempotency_key: z.ZodOptional<z.ZodString>;
1330
1333
  dedup: z.ZodOptional<z.ZodObject<{
1331
1334
  enabled: z.ZodBoolean;
@@ -46,34 +46,43 @@ exports.zExternalObjectTypeSchema = zod_1.z.enum([
46
46
  exports.zTaskExternalObjectTypeSchema = exports.zExternalObjectTypeSchema;
47
47
  exports.zTaskExecutionStatusSchema = zod_1.z.enum(["success", "error", "retry"]);
48
48
  // Schema para IExternalLink (promoted to shared, renamed from Task-specific)
49
- exports.zExternalLinkSchema = zod_1.z.object({
49
+ exports.zExternalLinkSchema = zod_1.z
50
+ .object({
50
51
  type: exports.zExternalObjectTypeSchema,
51
52
  id: zod_1.z.string(),
52
53
  label: zod_1.z.string().optional(),
53
54
  ref: zod_1.z.any().optional(), // FirestoreDocumentReference
54
- }).passthrough();
55
+ })
56
+ .passthrough();
55
57
  // Backward compatibility alias
56
58
  exports.zTaskExternalLinkSchema = exports.zExternalLinkSchema;
57
59
  // Schema para ITaskSchedule
58
- exports.zTaskScheduleSchema = zod_1.z.object({
60
+ exports.zTaskScheduleSchema = zod_1.z
61
+ .object({
59
62
  execute_at: zod_1.z.coerce.date().optional(),
60
63
  due_at: zod_1.z.coerce.date().optional(),
61
64
  timezone: zod_1.z.string().optional(),
62
- }).passthrough();
65
+ })
66
+ .passthrough();
63
67
  // Schema para ITaskUserAssignee
64
68
  // kind: aceita "user", undefined ou variações de case ("User") e normaliza para "user"
65
- exports.zTaskUserAssigneeSchema = zod_1.z.object({
69
+ exports.zTaskUserAssigneeSchema = zod_1.z
70
+ .object({
66
71
  kind: zod_1.z.preprocess((val) => (typeof val === "string" ? val.toLowerCase() : val), zod_1.z.union([zod_1.z.literal("user"), zod_1.z.undefined()]).default("user")),
67
72
  name: zod_1.z.string().optional(),
68
73
  ref: zod_1.z.any().optional(), // FirestoreDocumentReference
69
- }).passthrough();
74
+ })
75
+ .passthrough();
70
76
  // Schema para ITaskLock
71
- exports.zTaskLockSchema = zod_1.z.object({
77
+ exports.zTaskLockSchema = zod_1.z
78
+ .object({
72
79
  locked_by: zod_1.z.string(),
73
80
  lock_until: zod_1.z.coerce.date(),
74
- }).passthrough();
81
+ })
82
+ .passthrough();
75
83
  // Schema para ITaskRetryPolicy
76
- exports.zTaskRetryPolicySchema = zod_1.z.object({
84
+ exports.zTaskRetryPolicySchema = zod_1.z
85
+ .object({
77
86
  max_attempts: zod_1.z.number(),
78
87
  attempt: zod_1.z.number(),
79
88
  strategy: exports.zTaskRetryStrategySchema,
@@ -87,9 +96,11 @@ exports.zTaskRetryPolicySchema = zod_1.z.object({
87
96
  details: zod_1.z.record(zod_1.z.unknown()).optional(),
88
97
  })
89
98
  .optional(),
90
- }).passthrough();
99
+ })
100
+ .passthrough();
91
101
  // Schema para ITaskDedup
92
- exports.zTaskDedupSchema = zod_1.z.object({
102
+ exports.zTaskDedupSchema = zod_1.z
103
+ .object({
93
104
  enabled: zod_1.z.boolean(),
94
105
  key: zod_1.z.string(),
95
106
  group_key: zod_1.z.string().optional(),
@@ -97,17 +108,21 @@ exports.zTaskDedupSchema = zod_1.z.object({
97
108
  window: exports.zTaskDedupWindowSchema.optional(),
98
109
  window_hours: zod_1.z.number().optional(),
99
110
  importance: zod_1.z.number().optional(),
100
- }).passthrough();
111
+ })
112
+ .passthrough();
101
113
  // Schema para ITaskAutoSpec
102
- exports.zTaskAutoSpecSchema = zod_1.z.object({
114
+ exports.zTaskAutoSpecSchema = zod_1.z
115
+ .object({
103
116
  handler: exports.zTaskAutoHandlerSchema,
104
117
  kind: zod_1.z.string(),
105
118
  version: zod_1.z.union([zod_1.z.number(), zod_1.z.string()]).optional(),
106
119
  payload: zod_1.z.record(zod_1.z.unknown()),
107
120
  idempotency_key: zod_1.z.string().optional(),
108
- }).passthrough();
121
+ })
122
+ .passthrough();
109
123
  // Schema para ITaskOnFailure
110
- exports.zTaskOnFailureSchema = zod_1.z.object({
124
+ exports.zTaskOnFailureSchema = zod_1.z
125
+ .object({
111
126
  handoff_to_user: zod_1.z
112
127
  .object({
113
128
  name: zod_1.z.string().optional(),
@@ -129,12 +144,15 @@ exports.zTaskOnFailureSchema = zod_1.z.object({
129
144
  payload: zod_1.z.record(zod_1.z.unknown()),
130
145
  }))
131
146
  .optional(),
132
- }).passthrough();
147
+ })
148
+ .passthrough();
133
149
  // Schema para creator object
134
- exports.zTaskCreatorSchema = zod_1.z.object({
150
+ exports.zTaskCreatorSchema = zod_1.z
151
+ .object({
135
152
  name: zod_1.z.string(),
136
153
  ref: zod_1.z.any().optional(), // FirestoreDocumentReference
137
- }).passthrough();
154
+ })
155
+ .passthrough();
138
156
  // Schema para ITaskBase / ITask
139
157
  exports.zTaskSchema = zod_schemas_1.zFireDocSchema
140
158
  .extend({
@@ -148,6 +166,7 @@ exports.zTaskSchema = zod_schemas_1.zFireDocSchema
148
166
  schedule: exports.zTaskScheduleSchema.optional(),
149
167
  tags: zod_1.z.array(zod_schemas_1.zTagSchema).nullable().optional(),
150
168
  externalLinks: zod_1.z.array(exports.zTaskExternalLinkSchema).optional(),
169
+ externalLinkKeys: zod_1.z.array(zod_1.z.string()).optional(),
151
170
  idempotency_key: zod_1.z.string().optional(),
152
171
  dedup: exports.zTaskDedupSchema.optional(),
153
172
  metadata: zod_1.z.record(zod_1.z.unknown()).optional(),
@@ -175,15 +194,19 @@ exports.zTaskCommentSchema = zod_schemas_1.zFireDocSchema
175
194
  })
176
195
  .passthrough();
177
196
  // Schema para ITaskExecution
178
- exports.zTaskExecutionErrorSchema = zod_1.z.object({
197
+ exports.zTaskExecutionErrorSchema = zod_1.z
198
+ .object({
179
199
  message: zod_1.z.string(),
180
200
  code: zod_1.z.union([zod_1.z.string(), zod_1.z.number()]).optional(),
181
201
  details: zod_1.z.record(zod_1.z.unknown()).optional(),
182
- }).passthrough();
183
- exports.zTaskExecutionProviderSchema = zod_1.z.object({
202
+ })
203
+ .passthrough();
204
+ exports.zTaskExecutionProviderSchema = zod_1.z
205
+ .object({
184
206
  name: zod_1.z.string().optional(),
185
207
  message_id: zod_1.z.string().optional(),
186
- }).passthrough();
208
+ })
209
+ .passthrough();
187
210
  exports.zTaskExecutionSchema = zod_schemas_1.zFireDocSchema
188
211
  .extend({
189
212
  taskId: zod_1.z.string(),
@@ -56,109 +56,127 @@ export const zTaskExternalObjectTypeSchema = zExternalObjectTypeSchema;
56
56
  export const zTaskExecutionStatusSchema = z.enum(["success", "error", "retry"]);
57
57
 
58
58
  // Schema para IExternalLink (promoted to shared, renamed from Task-specific)
59
- export const zExternalLinkSchema = z.object({
60
- type: zExternalObjectTypeSchema,
61
- id: z.string(),
62
- label: z.string().optional(),
63
- ref: z.any().optional(), // FirestoreDocumentReference
64
- }).passthrough();
59
+ export const zExternalLinkSchema = z
60
+ .object({
61
+ type: zExternalObjectTypeSchema,
62
+ id: z.string(),
63
+ label: z.string().optional(),
64
+ ref: z.any().optional(), // FirestoreDocumentReference
65
+ })
66
+ .passthrough();
65
67
 
66
68
  // Backward compatibility alias
67
69
  export const zTaskExternalLinkSchema = zExternalLinkSchema;
68
70
 
69
71
  // Schema para ITaskSchedule
70
- export const zTaskScheduleSchema = z.object({
71
- execute_at: z.coerce.date().optional(),
72
- due_at: z.coerce.date().optional(),
73
- timezone: z.string().optional(),
74
- }).passthrough();
72
+ export const zTaskScheduleSchema = z
73
+ .object({
74
+ execute_at: z.coerce.date().optional(),
75
+ due_at: z.coerce.date().optional(),
76
+ timezone: z.string().optional(),
77
+ })
78
+ .passthrough();
75
79
 
76
80
  // Schema para ITaskUserAssignee
77
81
  // kind: aceita "user", undefined ou variações de case ("User") e normaliza para "user"
78
- export const zTaskUserAssigneeSchema = z.object({
79
- kind: z.preprocess(
80
- (val) => (typeof val === "string" ? val.toLowerCase() : val),
81
- z.union([z.literal("user"), z.undefined()]).default("user")
82
- ),
83
- name: z.string().optional(),
84
- ref: z.any().optional(), // FirestoreDocumentReference
85
- }).passthrough();
82
+ export const zTaskUserAssigneeSchema = z
83
+ .object({
84
+ kind: z.preprocess(
85
+ (val) => (typeof val === "string" ? val.toLowerCase() : val),
86
+ z.union([z.literal("user"), z.undefined()]).default("user"),
87
+ ),
88
+ name: z.string().optional(),
89
+ ref: z.any().optional(), // FirestoreDocumentReference
90
+ })
91
+ .passthrough();
86
92
 
87
93
  // Schema para ITaskLock
88
- export const zTaskLockSchema = z.object({
89
- locked_by: z.string(),
90
- lock_until: z.coerce.date(),
91
- }).passthrough();
94
+ export const zTaskLockSchema = z
95
+ .object({
96
+ locked_by: z.string(),
97
+ lock_until: z.coerce.date(),
98
+ })
99
+ .passthrough();
92
100
 
93
101
  // Schema para ITaskRetryPolicy
94
- export const zTaskRetryPolicySchema = z.object({
95
- max_attempts: z.number(),
96
- attempt: z.number(),
97
- strategy: zTaskRetryStrategySchema,
98
- backoff_seconds: z.number(),
99
- next_attempt_at: z.coerce.date().optional(),
100
- last_error: z
101
- .object({
102
- message: z.string(),
103
- code: z.union([z.string(), z.number()]).optional(),
104
- at: z.coerce.date(),
105
- details: z.record(z.unknown()).optional(),
106
- })
107
- .optional(),
108
- }).passthrough();
102
+ export const zTaskRetryPolicySchema = z
103
+ .object({
104
+ max_attempts: z.number(),
105
+ attempt: z.number(),
106
+ strategy: zTaskRetryStrategySchema,
107
+ backoff_seconds: z.number(),
108
+ next_attempt_at: z.coerce.date().optional(),
109
+ last_error: z
110
+ .object({
111
+ message: z.string(),
112
+ code: z.union([z.string(), z.number()]).optional(),
113
+ at: z.coerce.date(),
114
+ details: z.record(z.unknown()).optional(),
115
+ })
116
+ .optional(),
117
+ })
118
+ .passthrough();
109
119
 
110
120
  // Schema para ITaskDedup
111
- export const zTaskDedupSchema = z.object({
112
- enabled: z.boolean(),
113
- key: z.string(),
114
- group_key: z.string().optional(),
115
- scope: zTaskDedupScopeSchema.optional(),
116
- window: zTaskDedupWindowSchema.optional(),
117
- window_hours: z.number().optional(),
118
- importance: z.number().optional(),
119
- }).passthrough();
121
+ export const zTaskDedupSchema = z
122
+ .object({
123
+ enabled: z.boolean(),
124
+ key: z.string(),
125
+ group_key: z.string().optional(),
126
+ scope: zTaskDedupScopeSchema.optional(),
127
+ window: zTaskDedupWindowSchema.optional(),
128
+ window_hours: z.number().optional(),
129
+ importance: z.number().optional(),
130
+ })
131
+ .passthrough();
120
132
 
121
133
  // Schema para ITaskAutoSpec
122
- export const zTaskAutoSpecSchema = z.object({
123
- handler: zTaskAutoHandlerSchema,
124
- kind: z.string(),
125
- version: z.union([z.number(), z.string()]).optional(),
126
- payload: z.record(z.unknown()),
127
- idempotency_key: z.string().optional(),
128
- }).passthrough();
134
+ export const zTaskAutoSpecSchema = z
135
+ .object({
136
+ handler: zTaskAutoHandlerSchema,
137
+ kind: z.string(),
138
+ version: z.union([z.number(), z.string()]).optional(),
139
+ payload: z.record(z.unknown()),
140
+ idempotency_key: z.string().optional(),
141
+ })
142
+ .passthrough();
129
143
 
130
144
  // Schema para ITaskOnFailure
131
- export const zTaskOnFailureSchema = z.object({
132
- handoff_to_user: z
133
- .object({
134
- name: z.string().optional(),
135
- ref: z.any().optional(), // FirestoreDocumentReference
136
- })
137
- .optional(),
138
- create_handoff_task: z
139
- .object({
140
- title: z.string().optional(),
141
- description: z.string().optional(),
142
- priority: zTaskPrioritySchema.optional(),
143
- tags: z.array(zTagSchema).nullable().optional(),
144
- })
145
- .optional(),
146
- auto_fallbacks: z
147
- .array(
148
- z.object({
149
- handler: zTaskAutoHandlerSchema,
150
- kind: z.string(),
151
- payload: z.record(z.unknown()),
145
+ export const zTaskOnFailureSchema = z
146
+ .object({
147
+ handoff_to_user: z
148
+ .object({
149
+ name: z.string().optional(),
150
+ ref: z.any().optional(), // FirestoreDocumentReference
151
+ })
152
+ .optional(),
153
+ create_handoff_task: z
154
+ .object({
155
+ title: z.string().optional(),
156
+ description: z.string().optional(),
157
+ priority: zTaskPrioritySchema.optional(),
158
+ tags: z.array(zTagSchema).nullable().optional(),
152
159
  })
153
- )
154
- .optional(),
155
- }).passthrough();
160
+ .optional(),
161
+ auto_fallbacks: z
162
+ .array(
163
+ z.object({
164
+ handler: zTaskAutoHandlerSchema,
165
+ kind: z.string(),
166
+ payload: z.record(z.unknown()),
167
+ }),
168
+ )
169
+ .optional(),
170
+ })
171
+ .passthrough();
156
172
 
157
173
  // Schema para creator object
158
- export const zTaskCreatorSchema = z.object({
159
- name: z.string(),
160
- ref: z.any().optional(), // FirestoreDocumentReference
161
- }).passthrough();
174
+ export const zTaskCreatorSchema = z
175
+ .object({
176
+ name: z.string(),
177
+ ref: z.any().optional(), // FirestoreDocumentReference
178
+ })
179
+ .passthrough();
162
180
 
163
181
  // Schema para ITaskBase / ITask
164
182
  export const zTaskSchema = zFireDocSchema
@@ -173,6 +191,7 @@ export const zTaskSchema = zFireDocSchema
173
191
  schedule: zTaskScheduleSchema.optional(),
174
192
  tags: z.array(zTagSchema).nullable().optional(),
175
193
  externalLinks: z.array(zTaskExternalLinkSchema).optional(),
194
+ externalLinkKeys: z.array(z.string()).optional(),
176
195
  idempotency_key: z.string().optional(),
177
196
  dedup: zTaskDedupSchema.optional(),
178
197
  metadata: z.record(z.unknown()).optional(),
@@ -203,16 +222,20 @@ export const zTaskCommentSchema = zFireDocSchema
203
222
  .passthrough();
204
223
 
205
224
  // Schema para ITaskExecution
206
- export const zTaskExecutionErrorSchema = z.object({
207
- message: z.string(),
208
- code: z.union([z.string(), z.number()]).optional(),
209
- details: z.record(z.unknown()).optional(),
210
- }).passthrough();
211
-
212
- export const zTaskExecutionProviderSchema = z.object({
213
- name: z.string().optional(),
214
- message_id: z.string().optional(),
215
- }).passthrough();
225
+ export const zTaskExecutionErrorSchema = z
226
+ .object({
227
+ message: z.string(),
228
+ code: z.union([z.string(), z.number()]).optional(),
229
+ details: z.record(z.unknown()).optional(),
230
+ })
231
+ .passthrough();
232
+
233
+ export const zTaskExecutionProviderSchema = z
234
+ .object({
235
+ name: z.string().optional(),
236
+ message_id: z.string().optional(),
237
+ })
238
+ .passthrough();
216
239
 
217
240
  export const zTaskExecutionSchema = zFireDocSchema
218
241
  .extend({
@@ -123,6 +123,7 @@ export interface IServiceInvoice extends IFireDoc {
123
123
  taker: IInvoiceTakerRef;
124
124
  source?: IInvoiceSourceRef;
125
125
  externalLinks?: IExternalLink[];
126
+ externalLinkKeys?: string[];
126
127
  evo_chat?: {
127
128
  notifications?: IInvoiceChatNotification[];
128
129
  };
@@ -171,6 +171,7 @@ export interface IServiceInvoice extends IFireDoc {
171
171
 
172
172
  // Links to other documents (crm_lead, med_patient, etc.)
173
173
  externalLinks?: IExternalLink[];
174
+ externalLinkKeys?: string[];
174
175
 
175
176
  // Chat notifications (e.g. NFSe sent via WhatsApp)
176
177
  evo_chat?: { notifications?: IInvoiceChatNotification[] };
@@ -95,8 +95,8 @@ export interface ITaskDedup {
95
95
  importance?: number;
96
96
  [key: string]: unknown;
97
97
  }
98
- export type { ExternalObjectType, ExternalObjectTypeEnum, IExternalLink } from "../shared";
99
- export type { ExternalObjectType as TaskExternalObjectType, ExternalObjectTypeEnum as TaskExternalObjectTypeEnum, IExternalLink as ITaskExternalLink } from "../shared";
98
+ export type { ExternalObjectType, ExternalObjectTypeEnum, IExternalLink, } from "../shared";
99
+ export type { ExternalObjectType as TaskExternalObjectType, ExternalObjectTypeEnum as TaskExternalObjectTypeEnum, IExternalLink as ITaskExternalLink, } from "../shared";
100
100
  export interface ITaskUserAssignee {
101
101
  kind: "user";
102
102
  name?: string;
@@ -149,6 +149,7 @@ export interface ITaskBase extends IFireDoc {
149
149
  schedule?: ITaskSchedule;
150
150
  tags?: ITag[] | null;
151
151
  externalLinks?: IExternalLink[];
152
+ externalLinkKeys?: string[];
152
153
  idempotency_key?: string;
153
154
  dedup?: ITaskDedup;
154
155
  metadata?: Record<string, unknown>;
@@ -1,5 +1,10 @@
1
1
  export * from "./fb_collections";
2
- import type { FirestoreDocumentReference, IFireDoc, ITag, IExternalLink } from "../shared";
2
+ import type {
3
+ FirestoreDocumentReference,
4
+ IFireDoc,
5
+ ITag,
6
+ IExternalLink,
7
+ } from "../shared";
3
8
 
4
9
  // Permissões para o task
5
10
  export const EvoTaskPermissions = {
@@ -151,8 +156,16 @@ export interface ITaskDedup {
151
156
  // ----- External object links (for unified UI views)
152
157
  // Types moved to shared/external-links.ts for reuse across modules
153
158
  // Re-export both original names (from shared) and Task-specific aliases for backward compatibility
154
- export type { ExternalObjectType, ExternalObjectTypeEnum, IExternalLink } from "../shared";
155
- export type { ExternalObjectType as TaskExternalObjectType, ExternalObjectTypeEnum as TaskExternalObjectTypeEnum, IExternalLink as ITaskExternalLink } from "../shared";
159
+ export type {
160
+ ExternalObjectType,
161
+ ExternalObjectTypeEnum,
162
+ IExternalLink,
163
+ } from "../shared";
164
+ export type {
165
+ ExternalObjectType as TaskExternalObjectType,
166
+ ExternalObjectTypeEnum as TaskExternalObjectTypeEnum,
167
+ IExternalLink as ITaskExternalLink,
168
+ } from "../shared";
156
169
 
157
170
  // ----- Assignee (human)
158
171
  export interface ITaskUserAssignee {
@@ -229,6 +242,7 @@ export interface ITaskBase extends IFireDoc {
229
242
  // Links and taxonomy
230
243
  tags?: ITag[] | null;
231
244
  externalLinks?: IExternalLink[];
245
+ externalLinkKeys?: string[];
232
246
 
233
247
  // Optional deterministic key to avoid duplicates on rebuild/events
234
248
  idempotency_key?: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "evo360-types",
3
- "version": "1.3.244",
3
+ "version": "1.3.249",
4
4
  "description": "HREVO360 Shared Types",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",