agents-library 0.1.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 (89) hide show
  1. package/dist/base-agent.d.ts +172 -0
  2. package/dist/base-agent.d.ts.map +1 -0
  3. package/dist/base-agent.js +255 -0
  4. package/dist/base-agent.js.map +1 -0
  5. package/dist/base-bot.d.ts +282 -0
  6. package/dist/base-bot.d.ts.map +1 -0
  7. package/dist/base-bot.js +375 -0
  8. package/dist/base-bot.js.map +1 -0
  9. package/dist/common/result.d.ts +51 -0
  10. package/dist/common/result.d.ts.map +1 -0
  11. package/dist/common/result.js +45 -0
  12. package/dist/common/result.js.map +1 -0
  13. package/dist/common/types.d.ts +57 -0
  14. package/dist/common/types.d.ts.map +1 -0
  15. package/dist/common/types.js +42 -0
  16. package/dist/common/types.js.map +1 -0
  17. package/dist/index.d.ts +94 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +108 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/kadi-event-publisher.d.ts +163 -0
  22. package/dist/kadi-event-publisher.d.ts.map +1 -0
  23. package/dist/kadi-event-publisher.js +286 -0
  24. package/dist/kadi-event-publisher.js.map +1 -0
  25. package/dist/memory/arcadedb-adapter.d.ts +159 -0
  26. package/dist/memory/arcadedb-adapter.d.ts.map +1 -0
  27. package/dist/memory/arcadedb-adapter.js +314 -0
  28. package/dist/memory/arcadedb-adapter.js.map +1 -0
  29. package/dist/memory/file-storage-adapter.d.ts +122 -0
  30. package/dist/memory/file-storage-adapter.d.ts.map +1 -0
  31. package/dist/memory/file-storage-adapter.js +352 -0
  32. package/dist/memory/file-storage-adapter.js.map +1 -0
  33. package/dist/memory/memory-service.d.ts +208 -0
  34. package/dist/memory/memory-service.d.ts.map +1 -0
  35. package/dist/memory/memory-service.js +410 -0
  36. package/dist/memory/memory-service.js.map +1 -0
  37. package/dist/memory/types.d.ts +126 -0
  38. package/dist/memory/types.d.ts.map +1 -0
  39. package/dist/memory/types.js +41 -0
  40. package/dist/memory/types.js.map +1 -0
  41. package/dist/producer-tool-utils.d.ts +474 -0
  42. package/dist/producer-tool-utils.d.ts.map +1 -0
  43. package/dist/producer-tool-utils.js +664 -0
  44. package/dist/producer-tool-utils.js.map +1 -0
  45. package/dist/providers/anthropic-provider.d.ts +160 -0
  46. package/dist/providers/anthropic-provider.d.ts.map +1 -0
  47. package/dist/providers/anthropic-provider.js +527 -0
  48. package/dist/providers/anthropic-provider.js.map +1 -0
  49. package/dist/providers/model-manager-provider.d.ts +91 -0
  50. package/dist/providers/model-manager-provider.d.ts.map +1 -0
  51. package/dist/providers/model-manager-provider.js +355 -0
  52. package/dist/providers/model-manager-provider.js.map +1 -0
  53. package/dist/providers/provider-manager.d.ts +111 -0
  54. package/dist/providers/provider-manager.d.ts.map +1 -0
  55. package/dist/providers/provider-manager.js +337 -0
  56. package/dist/providers/provider-manager.js.map +1 -0
  57. package/dist/providers/types.d.ts +145 -0
  58. package/dist/providers/types.d.ts.map +1 -0
  59. package/dist/providers/types.js +23 -0
  60. package/dist/providers/types.js.map +1 -0
  61. package/dist/shadow-agent-factory.d.ts +623 -0
  62. package/dist/shadow-agent-factory.d.ts.map +1 -0
  63. package/dist/shadow-agent-factory.js +1117 -0
  64. package/dist/shadow-agent-factory.js.map +1 -0
  65. package/dist/types/agent-config.d.ts +307 -0
  66. package/dist/types/agent-config.d.ts.map +1 -0
  67. package/dist/types/agent-config.js +15 -0
  68. package/dist/types/agent-config.js.map +1 -0
  69. package/dist/types/event-schemas.d.ts +358 -0
  70. package/dist/types/event-schemas.d.ts.map +1 -0
  71. package/dist/types/event-schemas.js +188 -0
  72. package/dist/types/event-schemas.js.map +1 -0
  73. package/dist/types/tool-schemas.d.ts +498 -0
  74. package/dist/types/tool-schemas.d.ts.map +1 -0
  75. package/dist/types/tool-schemas.js +457 -0
  76. package/dist/types/tool-schemas.js.map +1 -0
  77. package/dist/utils/logger.d.ts +135 -0
  78. package/dist/utils/logger.d.ts.map +1 -0
  79. package/dist/utils/logger.js +205 -0
  80. package/dist/utils/logger.js.map +1 -0
  81. package/dist/utils/timer.d.ts +186 -0
  82. package/dist/utils/timer.d.ts.map +1 -0
  83. package/dist/utils/timer.js +211 -0
  84. package/dist/utils/timer.js.map +1 -0
  85. package/dist/worker-agent-factory.d.ts +688 -0
  86. package/dist/worker-agent-factory.d.ts.map +1 -0
  87. package/dist/worker-agent-factory.js +1517 -0
  88. package/dist/worker-agent-factory.js.map +1 -0
  89. package/package.json +38 -0
@@ -0,0 +1,358 @@
1
+ /**
2
+ * Event Schema Type Definitions with Zod Validation
3
+ * ==================================================
4
+ *
5
+ * Standardized event schemas for KĀDI multi-agent orchestration system.
6
+ * Includes TypeScript interfaces and Zod schemas for runtime validation.
7
+ *
8
+ * Event Topic Pattern: {role}.{event_type}
9
+ * - artist.task.assigned
10
+ * - artist.task.completed
11
+ * - artist.task.failed
12
+ * - backup.completed / backup.failed
13
+ *
14
+ * Design Principles:
15
+ * - All timestamps use ISO 8601 format (YYYY-MM-DDTHH:mm:ss.sssZ)
16
+ * - Backward compatible with existing event payloads
17
+ * - Runtime validation via Zod schemas
18
+ * - Type-safe event handling
19
+ *
20
+ * @module event-schemas
21
+ */
22
+ import { z } from '@kadi.build/core';
23
+ /**
24
+ * Event published when a task is assigned to a worker agent
25
+ *
26
+ * Topic Pattern: {role}.task.assigned
27
+ * - artist.task.assigned
28
+ * - designer.task.assigned
29
+ * - programmer.task.assigned
30
+ *
31
+ * @example
32
+ * ```typescript
33
+ * const event: TaskAssignedEvent = {
34
+ * taskId: 'task-123',
35
+ * role: 'artist',
36
+ * description: 'Create hero banner image',
37
+ * requirements: 'Size: 1920x1080, Format: PNG, Theme: Modern tech',
38
+ * timestamp: '2025-12-04T10:30:00.000Z'
39
+ * };
40
+ * ```
41
+ */
42
+ export interface TaskAssignedEvent {
43
+ /** Unique task identifier */
44
+ taskId: string;
45
+ /** Quest ID this task belongs to (optional for backward compatibility) */
46
+ questId?: string;
47
+ /** Agent role assigned to this task */
48
+ role: string;
49
+ /** Human-readable task description */
50
+ description: string;
51
+ /** Detailed requirements or specifications */
52
+ requirements: string;
53
+ /** ISO 8601 timestamp when task was assigned */
54
+ timestamp: string;
55
+ /** User or agent that assigned this task (optional) */
56
+ assignedBy?: string;
57
+ /** Feedback from previous verification failure (present on retry) */
58
+ feedback?: string;
59
+ /** Retry attempt number (0 = first attempt, 1+ = retry) */
60
+ retryAttempt?: number;
61
+ }
62
+ /**
63
+ * Zod schema for TaskAssignedEvent runtime validation
64
+ */
65
+ export declare const TaskAssignedEventSchema: z.ZodObject<{
66
+ taskId: z.ZodString;
67
+ questId: z.ZodOptional<z.ZodString>;
68
+ role: z.ZodString;
69
+ description: z.ZodString;
70
+ requirements: z.ZodString;
71
+ timestamp: z.ZodString;
72
+ assignedBy: z.ZodOptional<z.ZodString>;
73
+ feedback: z.ZodOptional<z.ZodString>;
74
+ retryAttempt: z.ZodOptional<z.ZodNumber>;
75
+ }, z.core.$strip>;
76
+ /**
77
+ * Event published when a worker agent successfully completes a task
78
+ *
79
+ * Topic Pattern: {role}.task.completed
80
+ * - artist.task.completed
81
+ * - designer.task.completed
82
+ * - programmer.task.completed
83
+ *
84
+ * This schema maintains backward compatibility with existing agent-artist implementation.
85
+ *
86
+ * @example
87
+ * ```typescript
88
+ * const event: TaskCompletedEvent = {
89
+ * taskId: 'task-123',
90
+ * role: 'artist',
91
+ * status: 'completed',
92
+ * filesCreated: ['artwork-hero-banner.png'],
93
+ * filesModified: [],
94
+ * commitSha: 'a1b2c3d4e5f6g7h8i9j0',
95
+ * timestamp: '2025-12-04T10:45:00.000Z',
96
+ * agent: 'agent-artist'
97
+ * };
98
+ * ```
99
+ */
100
+ export interface TaskCompletedEvent {
101
+ /** Unique task identifier */
102
+ taskId: string;
103
+ /** Quest ID this task belongs to (optional for backward compatibility) */
104
+ questId?: string;
105
+ /** Agent role that completed this task */
106
+ role: string;
107
+ /** Task completion status (always 'completed') */
108
+ status: 'completed';
109
+ /** Array of file paths created during task execution */
110
+ filesCreated: string[];
111
+ /** Array of file paths modified during task execution */
112
+ filesModified: string[];
113
+ /** Git commit SHA of the commit containing task output */
114
+ commitSha: string;
115
+ /** ISO 8601 timestamp when task was completed */
116
+ timestamp: string;
117
+ /** Agent identifier (e.g., 'agent-artist', 'agent-designer') */
118
+ agent: string;
119
+ /** Truncated summary of generated content for verification (optional) */
120
+ contentSummary?: string;
121
+ /** Absolute path to the git worktree where the worker executed (for independent verification) */
122
+ worktreePath?: string;
123
+ }
124
+ /**
125
+ * Zod schema for TaskCompletedEvent runtime validation
126
+ */
127
+ export declare const TaskCompletedEventSchema: z.ZodObject<{
128
+ taskId: z.ZodString;
129
+ questId: z.ZodOptional<z.ZodString>;
130
+ role: z.ZodString;
131
+ status: z.ZodLiteral<"completed">;
132
+ filesCreated: z.ZodArray<z.ZodString>;
133
+ filesModified: z.ZodArray<z.ZodString>;
134
+ commitSha: z.ZodString;
135
+ timestamp: z.ZodString;
136
+ agent: z.ZodString;
137
+ contentSummary: z.ZodOptional<z.ZodString>;
138
+ worktreePath: z.ZodOptional<z.ZodString>;
139
+ }, z.core.$strip>;
140
+ /**
141
+ * Event published when a worker agent fails to complete a task
142
+ *
143
+ * Topic Pattern: {role}.task.failed
144
+ * - artist.task.failed
145
+ * - designer.task.failed
146
+ * - programmer.task.failed
147
+ *
148
+ * This schema maintains backward compatibility with existing agent-artist implementation.
149
+ *
150
+ * @example
151
+ * ```typescript
152
+ * const event: TaskFailedEvent = {
153
+ * taskId: 'task-123',
154
+ * role: 'artist',
155
+ * error: 'Claude API timeout after 60 seconds',
156
+ * timestamp: '2025-12-04T10:45:00.000Z',
157
+ * agent: 'agent-artist'
158
+ * };
159
+ * ```
160
+ */
161
+ export interface TaskFailedEvent {
162
+ /** Unique task identifier */
163
+ taskId: string;
164
+ /** Quest identifier this task belongs to */
165
+ questId: string;
166
+ /** Agent role that attempted this task */
167
+ role: string;
168
+ /** Error message describing the failure */
169
+ error: string;
170
+ /** ISO 8601 timestamp when task failed */
171
+ timestamp: string;
172
+ /** Agent identifier (e.g., 'agent-artist', 'agent-designer') */
173
+ agent: string;
174
+ }
175
+ /**
176
+ * Zod schema for TaskFailedEvent runtime validation
177
+ */
178
+ export declare const TaskFailedEventSchema: z.ZodObject<{
179
+ taskId: z.ZodString;
180
+ questId: z.ZodString;
181
+ role: z.ZodString;
182
+ error: z.ZodString;
183
+ timestamp: z.ZodString;
184
+ agent: z.ZodString;
185
+ }, z.core.$strip>;
186
+ /**
187
+ * Event published when a worker agent rejects a task due to capability mismatch
188
+ *
189
+ * Topic Pattern: task.rejected
190
+ *
191
+ * Worker agents validate incoming tasks against their capabilities before execution.
192
+ * If the task description doesn't match the agent's skill set, the agent publishes
193
+ * this event instead of attempting execution.
194
+ *
195
+ * @example
196
+ * ```typescript
197
+ * const event: TaskRejectedEvent = {
198
+ * taskId: 'task-123',
199
+ * questId: 'quest-456',
200
+ * role: 'artist',
201
+ * reason: 'Task requires database/backend skills, not artistic capabilities',
202
+ * timestamp: '2025-12-04T10:45:00.000Z',
203
+ * agent: 'agent-artist'
204
+ * };
205
+ * ```
206
+ */
207
+ export interface TaskRejectedEvent {
208
+ /** Unique task identifier */
209
+ taskId: string;
210
+ /** Quest identifier (optional, for quest-based workflows) */
211
+ questId?: string;
212
+ /** Agent role that rejected this task */
213
+ role: string;
214
+ /** Reason for rejection (capability mismatch explanation) */
215
+ reason: string;
216
+ /** ISO 8601 timestamp when task was rejected */
217
+ timestamp: string;
218
+ /** Agent identifier (e.g., 'agent-artist', 'agent-designer') */
219
+ agent: string;
220
+ }
221
+ /**
222
+ * Zod schema for TaskRejectedEvent runtime validation
223
+ */
224
+ export declare const TaskRejectedEventSchema: z.ZodObject<{
225
+ taskId: z.ZodString;
226
+ questId: z.ZodOptional<z.ZodString>;
227
+ role: z.ZodString;
228
+ reason: z.ZodString;
229
+ timestamp: z.ZodString;
230
+ agent: z.ZodString;
231
+ }, z.core.$strip>;
232
+ /**
233
+ * Event published when a shadow agent completes a backup operation
234
+ *
235
+ * Topic Pattern: backup.{completed|failed}
236
+ * Agent identity is carried in the payload `agent` field (e.g., 'shadow-agent-artist').
237
+ *
238
+ * Shadow agents watch worker worktrees and create mirror commits in shadow worktrees.
239
+ *
240
+ * @example
241
+ * ```typescript
242
+ * const event: BackupEvent = {
243
+ * agent: 'shadow-agent-artist',
244
+ * role: 'artist',
245
+ * operation: 'mirror-commit',
246
+ * status: 'success',
247
+ * filesBackedUp: ['artwork-hero-banner.png', 'artwork-logo.svg'],
248
+ * timestamp: '2025-12-04T10:46:00.000Z'
249
+ * };
250
+ * ```
251
+ */
252
+ export interface BackupEvent {
253
+ /** Agent identifier (e.g., 'shadow-agent-artist', 'shadow-agent-designer') */
254
+ agent: string;
255
+ /** Agent role being backed up */
256
+ role: string;
257
+ /** Backup operation type (e.g., 'mirror-commit', 'full-sync') */
258
+ operation: string;
259
+ /** Operation status */
260
+ status: 'success' | 'failure';
261
+ /** Array of file paths that were backed up */
262
+ filesBackedUp: string[];
263
+ /** Error message if status is 'failure' (optional) */
264
+ error?: string;
265
+ /** ISO 8601 timestamp when backup operation completed */
266
+ timestamp: string;
267
+ }
268
+ /**
269
+ * Zod schema for BackupEvent runtime validation
270
+ */
271
+ export declare const BackupEventSchema: z.ZodObject<{
272
+ agent: z.ZodString;
273
+ role: z.ZodString;
274
+ operation: z.ZodString;
275
+ status: z.ZodEnum<{
276
+ success: "success";
277
+ failure: "failure";
278
+ }>;
279
+ filesBackedUp: z.ZodArray<z.ZodString>;
280
+ error: z.ZodOptional<z.ZodString>;
281
+ timestamp: z.ZodString;
282
+ }, z.core.$strip>;
283
+ /**
284
+ * Type guard to check if an object is a valid TaskAssignedEvent
285
+ *
286
+ * @param obj - Object to validate
287
+ * @returns True if obj matches TaskAssignedEvent schema
288
+ */
289
+ export declare function isTaskAssignedEvent(obj: unknown): obj is TaskAssignedEvent;
290
+ /**
291
+ * Type guard to check if an object is a valid TaskCompletedEvent
292
+ *
293
+ * @param obj - Object to validate
294
+ * @returns True if obj matches TaskCompletedEvent schema
295
+ */
296
+ export declare function isTaskCompletedEvent(obj: unknown): obj is TaskCompletedEvent;
297
+ /**
298
+ * Type guard to check if an object is a valid TaskFailedEvent
299
+ *
300
+ * @param obj - Object to validate
301
+ * @returns True if obj matches TaskFailedEvent schema
302
+ */
303
+ export declare function isTaskFailedEvent(obj: unknown): obj is TaskFailedEvent;
304
+ /**
305
+ * Type guard to check if an object is a valid BackupEvent
306
+ *
307
+ * @param obj - Object to validate
308
+ * @returns True if obj matches BackupEvent schema
309
+ */
310
+ export declare function isBackupEvent(obj: unknown): obj is BackupEvent;
311
+ /**
312
+ * Type guard to check if an object is a valid TaskRejectedEvent
313
+ *
314
+ * @param obj - Object to validate
315
+ * @returns True if obj matches TaskRejectedEvent schema
316
+ */
317
+ export declare function isTaskRejectedEvent(obj: unknown): obj is TaskRejectedEvent;
318
+ /**
319
+ * Validate and parse TaskAssignedEvent with detailed error messages
320
+ *
321
+ * @param obj - Object to validate
322
+ * @returns Parsed TaskAssignedEvent
323
+ * @throws ZodError with detailed validation errors
324
+ */
325
+ export declare function parseTaskAssignedEvent(obj: unknown): TaskAssignedEvent;
326
+ /**
327
+ * Validate and parse TaskCompletedEvent with detailed error messages
328
+ *
329
+ * @param obj - Object to validate
330
+ * @returns Parsed TaskCompletedEvent
331
+ * @throws ZodError with detailed validation errors
332
+ */
333
+ export declare function parseTaskCompletedEvent(obj: unknown): TaskCompletedEvent;
334
+ /**
335
+ * Validate and parse TaskFailedEvent with detailed error messages
336
+ *
337
+ * @param obj - Object to validate
338
+ * @returns Parsed TaskFailedEvent
339
+ * @throws ZodError with detailed validation errors
340
+ */
341
+ export declare function parseTaskFailedEvent(obj: unknown): TaskFailedEvent;
342
+ /**
343
+ * Validate and parse BackupEvent with detailed error messages
344
+ *
345
+ * @param obj - Object to validate
346
+ * @returns Parsed BackupEvent
347
+ * @throws ZodError with detailed validation errors
348
+ */
349
+ export declare function parseBackupEvent(obj: unknown): BackupEvent;
350
+ /**
351
+ * Validate and parse TaskRejectedEvent with detailed error messages
352
+ *
353
+ * @param obj - Object to validate
354
+ * @returns Parsed TaskRejectedEvent
355
+ * @throws ZodError with detailed validation errors
356
+ */
357
+ export declare function parseTaskRejectedEvent(obj: unknown): TaskRejectedEvent;
358
+ //# sourceMappingURL=event-schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-schemas.d.ts","sourceRoot":"","sources":["../../src/types/event-schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,188 @@
1
+ /**
2
+ * Event Schema Type Definitions with Zod Validation
3
+ * ==================================================
4
+ *
5
+ * Standardized event schemas for KĀDI multi-agent orchestration system.
6
+ * Includes TypeScript interfaces and Zod schemas for runtime validation.
7
+ *
8
+ * Event Topic Pattern: {role}.{event_type}
9
+ * - artist.task.assigned
10
+ * - artist.task.completed
11
+ * - artist.task.failed
12
+ * - backup.completed / backup.failed
13
+ *
14
+ * Design Principles:
15
+ * - All timestamps use ISO 8601 format (YYYY-MM-DDTHH:mm:ss.sssZ)
16
+ * - Backward compatible with existing event payloads
17
+ * - Runtime validation via Zod schemas
18
+ * - Type-safe event handling
19
+ *
20
+ * @module event-schemas
21
+ */
22
+ import { z } from '@kadi.build/core';
23
+ /**
24
+ * Zod schema for TaskAssignedEvent runtime validation
25
+ */
26
+ export const TaskAssignedEventSchema = z.object({
27
+ taskId: z.string().min(1, 'Task ID is required'),
28
+ questId: z.string().optional(),
29
+ role: z.string().min(1, 'Role is required'),
30
+ description: z.string().min(1, 'Description is required'),
31
+ requirements: z.string(),
32
+ timestamp: z.string().datetime('Invalid ISO 8601 timestamp'),
33
+ assignedBy: z.string().optional(),
34
+ feedback: z.string().optional(),
35
+ retryAttempt: z.number().optional()
36
+ });
37
+ /**
38
+ * Zod schema for TaskCompletedEvent runtime validation
39
+ */
40
+ export const TaskCompletedEventSchema = z.object({
41
+ taskId: z.string().min(1, 'Task ID is required'),
42
+ questId: z.string().optional(),
43
+ role: z.string().min(1, 'Role is required'),
44
+ status: z.literal('completed'),
45
+ filesCreated: z.array(z.string()),
46
+ filesModified: z.array(z.string()),
47
+ commitSha: z.string().min(1, 'Commit SHA is required'),
48
+ timestamp: z.string().datetime('Invalid ISO 8601 timestamp'),
49
+ agent: z.string().min(1, 'Agent identifier is required'),
50
+ contentSummary: z.string().optional(),
51
+ worktreePath: z.string().optional()
52
+ });
53
+ /**
54
+ * Zod schema for TaskFailedEvent runtime validation
55
+ */
56
+ export const TaskFailedEventSchema = z.object({
57
+ taskId: z.string().min(1, 'Task ID is required'),
58
+ questId: z.string().min(1, 'Quest ID is required'),
59
+ role: z.string().min(1, 'Role is required'),
60
+ error: z.string().min(1, 'Error message is required'),
61
+ timestamp: z.string().datetime('Invalid ISO 8601 timestamp'),
62
+ agent: z.string().min(1, 'Agent identifier is required')
63
+ });
64
+ /**
65
+ * Zod schema for TaskRejectedEvent runtime validation
66
+ */
67
+ export const TaskRejectedEventSchema = z.object({
68
+ taskId: z.string().min(1, 'Task ID is required'),
69
+ questId: z.string().optional(),
70
+ role: z.string().min(1, 'Role is required'),
71
+ reason: z.string().min(1, 'Rejection reason is required'),
72
+ timestamp: z.string().datetime('Invalid ISO 8601 timestamp'),
73
+ agent: z.string().min(1, 'Agent identifier is required')
74
+ });
75
+ /**
76
+ * Zod schema for BackupEvent runtime validation
77
+ */
78
+ export const BackupEventSchema = z.object({
79
+ agent: z.string().min(1, 'Agent identifier is required'),
80
+ role: z.string().min(1, 'Role is required'),
81
+ operation: z.string().min(1, 'Operation type is required'),
82
+ status: z.enum(['success', 'failure']),
83
+ filesBackedUp: z.array(z.string()),
84
+ error: z.string().optional(),
85
+ timestamp: z.string().datetime('Invalid ISO 8601 timestamp')
86
+ });
87
+ // ============================================================================
88
+ // Type Guards
89
+ // ============================================================================
90
+ /**
91
+ * Type guard to check if an object is a valid TaskAssignedEvent
92
+ *
93
+ * @param obj - Object to validate
94
+ * @returns True if obj matches TaskAssignedEvent schema
95
+ */
96
+ export function isTaskAssignedEvent(obj) {
97
+ return TaskAssignedEventSchema.safeParse(obj).success;
98
+ }
99
+ /**
100
+ * Type guard to check if an object is a valid TaskCompletedEvent
101
+ *
102
+ * @param obj - Object to validate
103
+ * @returns True if obj matches TaskCompletedEvent schema
104
+ */
105
+ export function isTaskCompletedEvent(obj) {
106
+ return TaskCompletedEventSchema.safeParse(obj).success;
107
+ }
108
+ /**
109
+ * Type guard to check if an object is a valid TaskFailedEvent
110
+ *
111
+ * @param obj - Object to validate
112
+ * @returns True if obj matches TaskFailedEvent schema
113
+ */
114
+ export function isTaskFailedEvent(obj) {
115
+ return TaskFailedEventSchema.safeParse(obj).success;
116
+ }
117
+ /**
118
+ * Type guard to check if an object is a valid BackupEvent
119
+ *
120
+ * @param obj - Object to validate
121
+ * @returns True if obj matches BackupEvent schema
122
+ */
123
+ export function isBackupEvent(obj) {
124
+ return BackupEventSchema.safeParse(obj).success;
125
+ }
126
+ /**
127
+ * Type guard to check if an object is a valid TaskRejectedEvent
128
+ *
129
+ * @param obj - Object to validate
130
+ * @returns True if obj matches TaskRejectedEvent schema
131
+ */
132
+ export function isTaskRejectedEvent(obj) {
133
+ return TaskRejectedEventSchema.safeParse(obj).success;
134
+ }
135
+ // ============================================================================
136
+ // Validation Helpers
137
+ // ============================================================================
138
+ /**
139
+ * Validate and parse TaskAssignedEvent with detailed error messages
140
+ *
141
+ * @param obj - Object to validate
142
+ * @returns Parsed TaskAssignedEvent
143
+ * @throws ZodError with detailed validation errors
144
+ */
145
+ export function parseTaskAssignedEvent(obj) {
146
+ return TaskAssignedEventSchema.parse(obj);
147
+ }
148
+ /**
149
+ * Validate and parse TaskCompletedEvent with detailed error messages
150
+ *
151
+ * @param obj - Object to validate
152
+ * @returns Parsed TaskCompletedEvent
153
+ * @throws ZodError with detailed validation errors
154
+ */
155
+ export function parseTaskCompletedEvent(obj) {
156
+ return TaskCompletedEventSchema.parse(obj);
157
+ }
158
+ /**
159
+ * Validate and parse TaskFailedEvent with detailed error messages
160
+ *
161
+ * @param obj - Object to validate
162
+ * @returns Parsed TaskFailedEvent
163
+ * @throws ZodError with detailed validation errors
164
+ */
165
+ export function parseTaskFailedEvent(obj) {
166
+ return TaskFailedEventSchema.parse(obj);
167
+ }
168
+ /**
169
+ * Validate and parse BackupEvent with detailed error messages
170
+ *
171
+ * @param obj - Object to validate
172
+ * @returns Parsed BackupEvent
173
+ * @throws ZodError with detailed validation errors
174
+ */
175
+ export function parseBackupEvent(obj) {
176
+ return BackupEventSchema.parse(obj);
177
+ }
178
+ /**
179
+ * Validate and parse TaskRejectedEvent with detailed error messages
180
+ *
181
+ * @param obj - Object to validate
182
+ * @returns Parsed TaskRejectedEvent
183
+ * @throws ZodError with detailed validation errors
184
+ */
185
+ export function parseTaskRejectedEvent(obj) {
186
+ return TaskRejectedEventSchema.parse(obj);
187
+ }
188
+ //# sourceMappingURL=event-schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-schemas.js","sourceRoot":"","sources":["../../src/types/event-schemas.ts"],"names":[],"mappings":"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"}