skedyul 1.2.41 → 1.2.44

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 (51) hide show
  1. package/dist/cli/commands/agents.d.ts +1 -0
  2. package/dist/cli/commands/chat.d.ts +1 -0
  3. package/dist/cli/commands/crm.d.ts +1 -0
  4. package/dist/cli/commands/skills.d.ts +1 -0
  5. package/dist/cli/index.js +17637 -6230
  6. package/dist/cli/utils/auth.js +495 -0
  7. package/dist/cli/utils/mock-context.d.ts +22 -0
  8. package/dist/cli/utils/sse.d.ts +100 -0
  9. package/dist/compiler/compiler.d.ts +12 -0
  10. package/dist/compiler/index.d.ts +2 -0
  11. package/dist/compiler/types.d.ts +173 -0
  12. package/dist/config/index.d.ts +1 -0
  13. package/dist/config/schema-loader.d.ts +156 -0
  14. package/dist/config/types/model.d.ts +28 -0
  15. package/dist/context/index.d.ts +2 -0
  16. package/dist/context/resolver.d.ts +51 -0
  17. package/dist/context/types.d.ts +217 -0
  18. package/dist/dedicated/server.js +23 -10
  19. package/dist/esm/index.mjs +9630 -449
  20. package/dist/events/index.d.ts +1 -0
  21. package/dist/events/types.d.ts +528 -0
  22. package/dist/index.d.ts +16 -0
  23. package/dist/index.js +9723 -460
  24. package/dist/memory/index.d.ts +4 -0
  25. package/dist/memory/service.d.ts +78 -0
  26. package/dist/memory/types.d.ts +169 -0
  27. package/dist/schemas/agent-schema-v3.d.ts +437 -0
  28. package/dist/schemas/agent-schema-v3.js +539 -0
  29. package/dist/schemas/agent-schema-v3.mjs +497 -0
  30. package/dist/schemas/agent-schema.d.ts +1504 -0
  31. package/dist/schemas/agent-schema.js +7896 -0
  32. package/dist/schemas/agent-schema.mjs +7867 -0
  33. package/dist/schemas/crm-schema.d.ts +448 -0
  34. package/dist/schemas/index.d.ts +2 -0
  35. package/dist/schemas.d.ts +69 -36
  36. package/dist/server.js +23 -10
  37. package/dist/serverless/server.mjs +23 -10
  38. package/dist/skills/index.d.ts +1 -0
  39. package/dist/skills/types.d.ts +355 -0
  40. package/dist/skills/types.js +281 -0
  41. package/dist/skills/types.mjs +234 -0
  42. package/dist/triggers/index.d.ts +2 -0
  43. package/dist/triggers/resolver.d.ts +31 -0
  44. package/dist/triggers/types.d.ts +313 -0
  45. package/dist/types/data-blocks.d.ts +105 -0
  46. package/dist/types/index.d.ts +2 -1
  47. package/dist/types/tool-response.d.ts +16 -0
  48. package/dist/types/tool.d.ts +32 -8
  49. package/dist/workflows/index.d.ts +1 -0
  50. package/dist/workflows/types.d.ts +295 -0
  51. package/package.json +19 -1
@@ -0,0 +1,497 @@
1
+ import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
+
3
+ // src/schemas/agent-schema-v3.ts
4
+ import { z as z4 } from "zod/v4";
5
+
6
+ // src/events/types.ts
7
+ import { z } from "zod/v4";
8
+ var ThreadEventTypeSchema = z.enum([
9
+ // Message events
10
+ "thread.message.received",
11
+ "thread.message.sent",
12
+ // Participant events
13
+ "thread.participant.joined",
14
+ "thread.participant.left",
15
+ "thread.participant.mentioned",
16
+ // Context events
17
+ "thread.context.changed",
18
+ "thread.status.changed",
19
+ // Agent/Workflow events
20
+ "thread.agent.delegated",
21
+ "thread.agent.completed",
22
+ "thread.workflow.triggered",
23
+ "thread.workflow.completed",
24
+ // Scheduled events
25
+ "thread.follow_up.due",
26
+ "thread.reminder.due"
27
+ ]);
28
+ var CustomEventTypeSchema = z.string().regex(/^custom\.[a-z][a-z0-9_]*(\.[a-z][a-z0-9_]*)*$/, {
29
+ message: "Custom event type must match pattern: custom.{namespace}.{event}"
30
+ });
31
+ var EventTypeSchema = z.union([ThreadEventTypeSchema, CustomEventTypeSchema]);
32
+ var ParticipantKindSchema = z.enum(["CONTACT", "MEMBER", "AGENT", "WORKFLOW"]);
33
+ var BaseEventPayloadSchema = z.object({
34
+ threadId: z.string(),
35
+ workplaceId: z.string(),
36
+ timestamp: z.string().datetime().optional()
37
+ });
38
+ var MessageEventPayloadSchema = BaseEventPayloadSchema.extend({
39
+ message: z.object({
40
+ id: z.string(),
41
+ content: z.string(),
42
+ senderId: z.string().optional()
43
+ }),
44
+ participant: z.object({
45
+ id: z.string(),
46
+ kind: ParticipantKindSchema,
47
+ displayName: z.string().optional()
48
+ }).optional(),
49
+ isFirstMessage: z.boolean().optional(),
50
+ messageCount: z.number().optional()
51
+ });
52
+ var ParticipantEventPayloadSchema = BaseEventPayloadSchema.extend({
53
+ participant: z.object({
54
+ id: z.string(),
55
+ kind: ParticipantKindSchema,
56
+ displayName: z.string().optional(),
57
+ contactId: z.string().optional(),
58
+ memberId: z.string().optional(),
59
+ agentId: z.string().optional(),
60
+ workflowId: z.string().optional()
61
+ })
62
+ });
63
+ var ContextChangedPayloadSchema = BaseEventPayloadSchema.extend({
64
+ context: z.object({
65
+ handle: z.string(),
66
+ model: z.string(),
67
+ instanceId: z.string()
68
+ }),
69
+ change: z.object({
70
+ field: z.string().optional(),
71
+ oldValue: z.unknown().optional(),
72
+ newValue: z.unknown().optional()
73
+ }).optional()
74
+ });
75
+ var StatusChangedPayloadSchema = BaseEventPayloadSchema.extend({
76
+ oldStatus: z.string(),
77
+ newStatus: z.string()
78
+ });
79
+ var ScheduledEventPayloadSchema = BaseEventPayloadSchema.extend({
80
+ scheduledEventId: z.string(),
81
+ reason: z.string().optional(),
82
+ context: z.record(z.string(), z.unknown()).optional()
83
+ });
84
+ var AgentWorkflowEventPayloadSchema = BaseEventPayloadSchema.extend({
85
+ agentId: z.string().optional(),
86
+ workflowId: z.string().optional(),
87
+ workflowRunId: z.string().optional(),
88
+ outputs: z.record(z.string(), z.unknown()).optional(),
89
+ error: z.string().optional()
90
+ });
91
+ var CustomEventPayloadSchema = BaseEventPayloadSchema.extend({
92
+ data: z.record(z.string(), z.unknown()).optional()
93
+ });
94
+ var ThreadEventPayloadSchema = z.union([
95
+ MessageEventPayloadSchema,
96
+ ParticipantEventPayloadSchema,
97
+ ContextChangedPayloadSchema,
98
+ StatusChangedPayloadSchema,
99
+ ScheduledEventPayloadSchema,
100
+ AgentWorkflowEventPayloadSchema,
101
+ CustomEventPayloadSchema
102
+ ]);
103
+ var ThreadEventSchema = z.object({
104
+ id: z.string(),
105
+ threadId: z.string(),
106
+ type: EventTypeSchema,
107
+ payload: ThreadEventPayloadSchema,
108
+ emittedBy: z.string().optional(),
109
+ createdAt: z.string().datetime()
110
+ });
111
+ var CreateThreadEventInputSchema = z.object({
112
+ threadId: z.string(),
113
+ type: EventTypeSchema,
114
+ payload: z.record(z.string(), z.unknown()),
115
+ emittedBy: z.string().optional()
116
+ });
117
+ var EventSubscriptionSchema = z.object({
118
+ subscribes: z.array(EventTypeSchema),
119
+ condition: z.string().optional(),
120
+ cancels: z.array(EventTypeSchema).optional(),
121
+ cancelCondition: z.string().optional()
122
+ });
123
+ var EventWaitSchema = z.object({
124
+ event: EventTypeSchema,
125
+ timeout: z.string().optional(),
126
+ onTimeout: z.string().optional()
127
+ });
128
+ var EventsConfigSchema = z.object({
129
+ subscribes: z.array(EventTypeSchema).optional(),
130
+ condition: z.string().optional(),
131
+ emits: z.array(EventTypeSchema).optional(),
132
+ waits: z.array(EventWaitSchema).optional(),
133
+ cancels: z.array(EventTypeSchema).optional(),
134
+ cancelCondition: z.string().optional()
135
+ });
136
+
137
+ // src/skills/types.ts
138
+ import { z as z2 } from "zod/v4";
139
+ var SKILL_SCHEMA_VERSION_V2 = "https://skedyul.com/schemas/skill/v2";
140
+ var SkillSourceSchema = z2.enum(["BUILTIN", "S3", "APP", "EXTERNAL"]);
141
+ var SkillToolRequirementSchema = z2.object({
142
+ requires: z2.array(z2.string()).optional(),
143
+ provides: z2.array(z2.string()).optional()
144
+ });
145
+ var SkillToolSandboxSchema = z2.object({
146
+ mock: z2.unknown().optional()
147
+ });
148
+ var ToolConstraintsSchema = z2.object({
149
+ maxCallsPerRun: z2.number().optional(),
150
+ idempotent: z2.boolean().optional(),
151
+ restricted: z2.boolean().optional(),
152
+ tags: z2.array(z2.string()).optional()
153
+ });
154
+ var SkillToolDefinitionSchema = z2.object({
155
+ tool: z2.string(),
156
+ description: z2.string().optional(),
157
+ overrides: z2.record(z2.string(), z2.unknown()).optional(),
158
+ sandbox: SkillToolSandboxSchema.optional(),
159
+ requiresApproval: z2.boolean().optional(),
160
+ constraints: ToolConstraintsSchema.optional()
161
+ });
162
+ var SkillToolsSchema = z2.union([
163
+ SkillToolRequirementSchema,
164
+ z2.array(SkillToolDefinitionSchema)
165
+ ]);
166
+ var SkillExampleSchema = z2.object({
167
+ context: z2.string().optional(),
168
+ input: z2.string(),
169
+ reasoning: z2.string().optional(),
170
+ output: z2.string(),
171
+ tool_call: z2.string().optional()
172
+ });
173
+ var SkillEvaluationMetricSchema = z2.object({
174
+ metric: z2.string(),
175
+ description: z2.string().optional(),
176
+ threshold: z2.number().optional()
177
+ });
178
+ var CRMContextSchema = z2.object({
179
+ models: z2.record(z2.string(), z2.array(z2.string()))
180
+ // { modelHandle: [fieldHandles] }
181
+ });
182
+ var SkillYAMLSchema = z2.object({
183
+ // Schema version
184
+ $schema: z2.string().optional(),
185
+ // Identity
186
+ handle: z2.string(),
187
+ name: z2.string(),
188
+ version: z2.string().optional(),
189
+ description: z2.string().optional(),
190
+ // Instructions injected into agent system prompt
191
+ instructions: z2.string(),
192
+ // Tool configuration - supports both v1 and v2 formats
193
+ tools: SkillToolsSchema.optional(),
194
+ // CRM context - specifies which models/fields to include in schema
195
+ crmContext: CRMContextSchema.optional(),
196
+ // Few-shot examples
197
+ examples: z2.array(SkillExampleSchema).optional(),
198
+ // Evaluation criteria
199
+ evaluation: z2.array(SkillEvaluationMetricSchema).optional(),
200
+ // Tags for discovery
201
+ tags: z2.array(z2.string()).optional()
202
+ });
203
+ var SkillYAMLV2Schema = z2.object({
204
+ $schema: z2.literal(SKILL_SCHEMA_VERSION_V2).optional(),
205
+ handle: z2.string(),
206
+ name: z2.string(),
207
+ version: z2.string().optional(),
208
+ description: z2.string().optional(),
209
+ instructions: z2.string(),
210
+ tools: z2.array(SkillToolDefinitionSchema).optional(),
211
+ crmContext: CRMContextSchema.optional(),
212
+ examples: z2.array(SkillExampleSchema).optional(),
213
+ evaluation: z2.array(SkillEvaluationMetricSchema).optional(),
214
+ tags: z2.array(z2.string()).optional()
215
+ });
216
+ var SkillVersionWeightSchema = z2.object({
217
+ version: z2.number(),
218
+ weight: z2.number()
219
+ });
220
+ var SkillRefSchema = z2.union([
221
+ z2.string(),
222
+ // Just handle - uses latest published version
223
+ z2.object({
224
+ skill: z2.string(),
225
+ description: z2.string().optional(),
226
+ // For AI SDK Agent Skills discovery
227
+ // Version selection (pick one):
228
+ version: z2.number().optional(),
229
+ // Pin to specific version number
230
+ versions: z2.array(SkillVersionWeightSchema).optional(),
231
+ // A/B testing weights
232
+ // Legacy support:
233
+ instructions: z2.string().optional(),
234
+ // Inline instructions (deprecated)
235
+ enabled: z2.boolean().optional()
236
+ })
237
+ ]);
238
+ var SkillMetadataSchema = z2.object({
239
+ id: z2.string(),
240
+ handle: z2.string(),
241
+ name: z2.string(),
242
+ version: z2.string().optional(),
243
+ description: z2.string().optional(),
244
+ source: SkillSourceSchema,
245
+ s3Key: z2.string().optional(),
246
+ appVersionId: z2.string().optional(),
247
+ workplaceId: z2.string().optional(),
248
+ tags: z2.array(z2.string()).optional(),
249
+ createdAt: z2.string().datetime().optional(),
250
+ updatedAt: z2.string().datetime().optional()
251
+ });
252
+ var ResolvedSkillSchema = z2.object({
253
+ handle: z2.string(),
254
+ name: z2.string(),
255
+ instructions: z2.string().optional(),
256
+ description: z2.string().optional(),
257
+ tools: z2.array(z2.string()).optional(),
258
+ examples: z2.array(SkillExampleSchema).optional()
259
+ });
260
+ var LoadedSkillSchema = z2.object({
261
+ handle: z2.string(),
262
+ name: z2.string(),
263
+ instructions: z2.string().optional(),
264
+ description: z2.string().optional(),
265
+ tools: z2.array(SkillToolDefinitionSchema).optional(),
266
+ examples: z2.array(SkillExampleSchema).optional()
267
+ });
268
+
269
+ // src/context/types.ts
270
+ import { z as z3 } from "zod/v4";
271
+ var CRMContextSchema2 = z3.object({
272
+ model: z3.string(),
273
+ instanceId: z3.string(),
274
+ data: z3.record(z3.string(), z3.unknown())
275
+ });
276
+ var SenderContextSchema = z3.object({
277
+ kind: ParticipantKindSchema,
278
+ displayName: z3.string().optional(),
279
+ email: z3.string().optional(),
280
+ role: z3.string().optional(),
281
+ permissions: z3.array(z3.string()).optional(),
282
+ crm: CRMContextSchema2.optional()
283
+ });
284
+ var ThreadContextItemSchema = z3.object({
285
+ handle: z3.string(),
286
+ model: z3.string(),
287
+ instanceId: z3.string(),
288
+ data: z3.record(z3.string(), z3.unknown()).optional()
289
+ });
290
+ var ThreadInfoSchema = z3.object({
291
+ id: z3.string(),
292
+ title: z3.string().optional(),
293
+ status: z3.string().optional(),
294
+ kind: z3.string().optional()
295
+ });
296
+ var AgentContextSchema = z3.object({
297
+ // Who sent the message
298
+ sender: SenderContextSchema,
299
+ // Thread contexts (linked CRM instances)
300
+ contexts: z3.array(ThreadContextItemSchema).optional(),
301
+ // Thread info
302
+ thread: ThreadInfoSchema,
303
+ // Workplace info
304
+ workplace: z3.object({
305
+ id: z3.string(),
306
+ name: z3.string().optional()
307
+ }).optional()
308
+ });
309
+ var MockSubscriptionSchema = z3.object({
310
+ identifierValue: z3.string(),
311
+ channelHandle: z3.string().optional()
312
+ });
313
+ var MockAssociationSchema = z3.object({
314
+ id: z3.string().optional(),
315
+ data: z3.record(z3.string(), z3.unknown())
316
+ });
317
+ var MockContactSchema = z3.object({
318
+ id: z3.string().optional(),
319
+ name: z3.string().optional(),
320
+ subscription: MockSubscriptionSchema.optional(),
321
+ associations: z3.record(z3.string(), MockAssociationSchema).optional()
322
+ });
323
+ var MockSenderContextSchema = z3.object({
324
+ kind: z3.enum(["contact", "member"]),
325
+ displayName: z3.string().optional(),
326
+ role: z3.string().optional(),
327
+ permissions: z3.array(z3.string()).optional(),
328
+ contact: MockContactSchema.optional()
329
+ });
330
+ var MockThreadContextSchema = z3.object({
331
+ handle: z3.string(),
332
+ model: z3.string(),
333
+ data: z3.record(z3.string(), z3.unknown())
334
+ });
335
+ var MockContextSchema = z3.object({
336
+ sender: MockSenderContextSchema,
337
+ contexts: z3.array(MockThreadContextSchema).optional()
338
+ });
339
+ var SandboxConfigSchema = z3.object({
340
+ enabled: z3.boolean().optional(),
341
+ mockContext: MockContextSchema.optional()
342
+ });
343
+
344
+ // src/schemas/agent-schema-v3.ts
345
+ var AGENT_SCHEMA_VERSION_V3 = "https://skedyul.com/schemas/agent/v3";
346
+ var PersonaVoiceFormatV3Schema = z4.object({
347
+ maxChars: z4.number().optional(),
348
+ noEmojis: z4.boolean().optional(),
349
+ noHyphens: z4.boolean().optional(),
350
+ noBulletPoints: z4.boolean().optional(),
351
+ maxQuestionsPerMessage: z4.number().optional(),
352
+ noSignOffs: z4.boolean().optional()
353
+ });
354
+ var PersonaVoiceV3Schema = z4.object({
355
+ style: z4.string(),
356
+ format: PersonaVoiceFormatV3Schema.optional()
357
+ });
358
+ var PersonaV3Schema = z4.object({
359
+ name: z4.string(),
360
+ voice: PersonaVoiceV3Schema
361
+ });
362
+ var ToolApprovalConfigSchema = z4.object({
363
+ required: z4.boolean().optional(),
364
+ requiredIf: z4.array(z4.string()).optional()
365
+ });
366
+ var ToolSandboxConfigSchema = z4.object({
367
+ mock: z4.unknown().optional()
368
+ });
369
+ var ToolRefV3Schema = z4.union([
370
+ z4.string(),
371
+ z4.object({
372
+ tool: z4.string(),
373
+ description: z4.string().optional(),
374
+ approval: ToolApprovalConfigSchema.optional(),
375
+ sandbox: ToolSandboxConfigSchema.optional(),
376
+ overrides: z4.record(z4.string(), z4.unknown()).optional()
377
+ })
378
+ ]);
379
+ var BootstrapToolRefSchema = z4.union([
380
+ z4.string(),
381
+ z4.object({
382
+ tool: z4.string(),
383
+ description: z4.string().optional()
384
+ })
385
+ ]);
386
+ var WorkingMemoryConfigSchema = z4.object({
387
+ strategy: z4.enum(["full", "rolling_summary", "sliding_window"]).optional(),
388
+ maxTokens: z4.number().optional(),
389
+ summarizeAt: z4.number().optional()
390
+ });
391
+ var ExternalMemoryConfigSchema = z4.object({
392
+ enabled: z4.boolean().optional(),
393
+ ttl: z4.string().optional()
394
+ });
395
+ var SemanticMemoryConfigSchema = z4.object({
396
+ enabled: z4.boolean().optional(),
397
+ topK: z4.number().optional(),
398
+ scope: z4.enum(["thread", "instance", "workspace"]).optional()
399
+ });
400
+ var MemoryConfigV3Schema = z4.object({
401
+ working: WorkingMemoryConfigSchema.optional(),
402
+ persistent: z4.object({
403
+ namespace: z4.string().optional()
404
+ }).optional(),
405
+ external: ExternalMemoryConfigSchema.optional(),
406
+ semantic: SemanticMemoryConfigSchema.optional()
407
+ });
408
+ var ResponsePolicySchema = z4.object({
409
+ requiresApproval: z4.boolean().optional(),
410
+ requiresApprovalIf: z4.array(z4.string()).optional()
411
+ });
412
+ var PoliciesConfigV3Schema = z4.object({
413
+ response: ResponsePolicySchema.optional(),
414
+ rules: z4.array(z4.string()).optional()
415
+ });
416
+ var RuntimeConfigV3Schema = z4.object({
417
+ model: z4.string().optional(),
418
+ timeout: z4.string().optional(),
419
+ timezone: z4.string().optional(),
420
+ retry: z4.object({
421
+ attempts: z4.number().optional(),
422
+ backoff: z4.enum(["linear", "exponential"]).optional()
423
+ }).optional()
424
+ });
425
+ var PromptsConfigV3Schema = z4.object({
426
+ recovery: z4.string().optional(),
427
+ followUp: z4.string().optional(),
428
+ skillDiscoveryWorkflow: z4.string().optional()
429
+ });
430
+ var AgentConfigV3Schema = z4.record(z4.string(), z4.unknown());
431
+ var AgentYAMLV3Schema = z4.object({
432
+ $schema: z4.string().optional(),
433
+ handle: z4.string(),
434
+ name: z4.string(),
435
+ version: z4.string().optional(),
436
+ description: z4.string().optional(),
437
+ // Persona - Who the agent is
438
+ persona: PersonaV3Schema.optional(),
439
+ // Skills - What the agent knows how to do (skills own their tools)
440
+ skills: z4.array(SkillRefSchema).optional(),
441
+ // Bootstrap tools - Always-available system tools before any skill loads
442
+ // Examples: system:skill:load, system:message:send
443
+ bootstrapTools: z4.array(BootstrapToolRefSchema).optional(),
444
+ // Tools - DEPRECATED: Use skills to own tools instead
445
+ // Kept for backward compatibility during migration
446
+ // @deprecated Will be removed in a future version
447
+ tools: z4.array(ToolRefV3Schema).optional(),
448
+ // Events - When the agent activates
449
+ events: EventsConfigSchema.optional(),
450
+ // Memory - How the agent remembers
451
+ memory: MemoryConfigV3Schema.optional(),
452
+ // Policies - Constraints and approvals
453
+ policies: PoliciesConfigV3Schema.optional(),
454
+ // Runtime - Execution configuration
455
+ runtime: RuntimeConfigV3Schema.optional(),
456
+ // Prompts - Agent-specific prompt injections for runtime phases
457
+ // recovery: Injected during second pass when skills were loaded but tools not used
458
+ // followUp: Injected during follow-up passes when context needs updating
459
+ // skillDiscoveryWorkflow: Custom workflow instructions for skill discovery
460
+ prompts: PromptsConfigV3Schema.optional(),
461
+ // Config - Business-specific settings
462
+ config: AgentConfigV3Schema.optional(),
463
+ // Sandbox - Testing configuration
464
+ sandbox: SandboxConfigSchema.optional()
465
+ });
466
+ function defineAgentV3(agent) {
467
+ return AgentYAMLV3Schema.parse(agent);
468
+ }
469
+ function validateAgentYAMLV3(agent) {
470
+ const result = AgentYAMLV3Schema.safeParse(agent);
471
+ if (result.success) {
472
+ return { success: true, data: result.data };
473
+ }
474
+ return { success: false, error: result.error };
475
+ }
476
+ export {
477
+ AGENT_SCHEMA_VERSION_V3,
478
+ AgentConfigV3Schema,
479
+ AgentYAMLV3Schema,
480
+ BootstrapToolRefSchema,
481
+ ExternalMemoryConfigSchema,
482
+ MemoryConfigV3Schema,
483
+ PersonaV3Schema,
484
+ PersonaVoiceFormatV3Schema,
485
+ PersonaVoiceV3Schema,
486
+ PoliciesConfigV3Schema,
487
+ PromptsConfigV3Schema,
488
+ ResponsePolicySchema,
489
+ RuntimeConfigV3Schema,
490
+ SemanticMemoryConfigSchema,
491
+ ToolApprovalConfigSchema,
492
+ ToolRefV3Schema,
493
+ ToolSandboxConfigSchema,
494
+ WorkingMemoryConfigSchema,
495
+ defineAgentV3,
496
+ validateAgentYAMLV3
497
+ };