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