robotrock 1.0.0 → 1.3.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 (71) hide show
  1. package/dist/agent-admin.d.ts +82 -0
  2. package/dist/agent-admin.js +938 -0
  3. package/dist/agent-admin.js.map +1 -0
  4. package/dist/ai/index.d.ts +6 -5
  5. package/dist/ai/index.js +682 -225
  6. package/dist/ai/index.js.map +1 -1
  7. package/dist/ai/trigger.d.ts +4 -3
  8. package/dist/ai/trigger.js +682 -225
  9. package/dist/ai/trigger.js.map +1 -1
  10. package/dist/ai/workflow.d.ts +4 -3
  11. package/dist/ai/workflow.js +679 -222
  12. package/dist/ai/workflow.js.map +1 -1
  13. package/dist/auth-headers-qL-ZeEtd.d.ts +13 -0
  14. package/dist/{client-CzVmjXpz.d.ts → client-YO9Y1rkH.d.ts} +51 -10
  15. package/dist/eve/agent/index.d.ts +164 -0
  16. package/dist/eve/agent/index.js +2854 -0
  17. package/dist/eve/agent/index.js.map +1 -0
  18. package/dist/eve/index.d.ts +8 -0
  19. package/dist/eve/index.js +639 -0
  20. package/dist/eve/index.js.map +1 -0
  21. package/dist/eve/tools/admin/assign-tasks.d.ts +39 -0
  22. package/dist/eve/tools/admin/assign-tasks.js +1060 -0
  23. package/dist/eve/tools/admin/assign-tasks.js.map +1 -0
  24. package/dist/eve/tools/admin/manage-groups.d.ts +53 -0
  25. package/dist/eve/tools/admin/manage-groups.js +1218 -0
  26. package/dist/eve/tools/admin/manage-groups.js.map +1 -0
  27. package/dist/eve/tools/admin/manage-team-members.d.ts +45 -0
  28. package/dist/eve/tools/admin/manage-team-members.js +1160 -0
  29. package/dist/eve/tools/admin/manage-team-members.js.map +1 -0
  30. package/dist/eve/tools/admin/query-tasks.d.ts +71 -0
  31. package/dist/eve/tools/admin/query-tasks.js +1161 -0
  32. package/dist/eve/tools/admin/query-tasks.js.map +1 -0
  33. package/dist/eve/tools/catalog/search-products.d.ts +57 -0
  34. package/dist/eve/tools/catalog/search-products.js +94 -0
  35. package/dist/eve/tools/catalog/search-products.js.map +1 -0
  36. package/dist/eve/tools/identity/index.d.ts +8 -0
  37. package/dist/eve/tools/identity/index.js +234 -0
  38. package/dist/eve/tools/identity/index.js.map +1 -0
  39. package/dist/eve/tools/identity/my-access.d.ts +18 -0
  40. package/dist/eve/tools/identity/my-access.js +187 -0
  41. package/dist/eve/tools/identity/my-access.js.map +1 -0
  42. package/dist/eve/tools/identity/whoami.d.ts +44 -0
  43. package/dist/eve/tools/identity/whoami.js +117 -0
  44. package/dist/eve/tools/identity/whoami.js.map +1 -0
  45. package/dist/eve/tools/inbox/create-task.d.ts +114 -0
  46. package/dist/eve/tools/inbox/create-task.js +1785 -0
  47. package/dist/eve/tools/inbox/create-task.js.map +1 -0
  48. package/dist/eve/tools/inbox/index.d.ts +6 -0
  49. package/dist/eve/tools/inbox/index.js +1785 -0
  50. package/dist/eve/tools/inbox/index.js.map +1 -0
  51. package/dist/eve/tools/index.d.ts +24 -0
  52. package/dist/eve/tools/index.js +2848 -0
  53. package/dist/eve/tools/index.js.map +1 -0
  54. package/dist/index-DoQN48Bm.d.ts +200 -0
  55. package/dist/index.d.ts +8 -44
  56. package/dist/index.js +842 -137
  57. package/dist/index.js.map +1 -1
  58. package/dist/schemas/index.d.ts +6 -1
  59. package/dist/schemas/index.js +251 -59
  60. package/dist/schemas/index.js.map +1 -1
  61. package/dist/tenant-5YKDrdC-.d.ts +23 -0
  62. package/dist/{tool-approval-bridge-DbwUEBHv.d.ts → tool-approval-bridge-aMA79Z1B.d.ts} +1 -1
  63. package/dist/tool-reply-guidance-C3qrT1In.d.ts +25 -0
  64. package/dist/trigger/index.d.ts +2 -1
  65. package/dist/trigger/index.js +543 -127
  66. package/dist/trigger/index.js.map +1 -1
  67. package/dist/{trigger-BCKBbAV7.d.ts → trigger-CXrbKVCL.d.ts} +2 -2
  68. package/dist/workflow/index.d.ts +2 -1
  69. package/dist/workflow/index.js +543 -127
  70. package/dist/workflow/index.js.map +1 -1
  71. package/package.json +69 -8
@@ -205,7 +205,12 @@ declare const taskContextSchema: z.ZodPipe<z.ZodObject<{
205
205
  /**
206
206
  * Assignment targets at task create (not stored in task context JSON).
207
207
  * Unknown user emails are auto-provisioned as assignee memberships (count toward seat limits).
208
+ *
209
+ * Virtual group slugs (membership derived from tenantUsers, not groupMembers):
210
+ * - `all` — all workspace members (omit assignTo defaults to this)
211
+ * - `admins` — workspace users with tenant admin role
208
212
  */
213
+ declare const VIRTUAL_ASSIGN_TO_GROUP_SLUGS: readonly ["all", "admins"];
209
214
  declare const assignToSchema: z.ZodObject<{
210
215
  users: z.ZodOptional<z.ZodArray<z.ZodString>>;
211
216
  groups: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -544,4 +549,4 @@ type DiscriminatedApprovalResult<TActions extends readonly {
544
549
  } : never;
545
550
  }[TupleElementIndices<TActions>];
546
551
 
547
- export { type AgentTelemetry, type AgentTelemetryInput, type ApprovalResult, type AssignToInput, type CreateTaskBody, type CreateTaskBodyInput, DEFAULT_TASK_PRIORITY, DEFAULT_THREAD_UPDATE_STATUS, type DiscriminatedApprovalResult, type ExtendedJSONSchema7, type Handler, type InferActionData, type InferJsonSchema7, type JSONSchema7, type JSONSchema7TypeName, LOWEST_TASK_PRIORITY, TASK_CONTEXT_FORMAT_VERSION, TASK_PRIORITY_RANK, type Task, type TaskAction, type TaskActionInput, type TaskContext, type TaskContextFormatVersion, type TaskContextInput, type TaskContextOutput, type TaskPriority, type TaskResponse, type TaskResult, type TaskStatus, type ThreadUpdate, type ThreadUpdateBody, type ThreadUpdateBodyInput, type ThreadUpdateInput, type ThreadUpdateResponse, type ThreadUpdateSource, type ThreadUpdateStatus, type TriggerHandler, type TupleElementIndices, type UiSchema, type WebhookHandler, agentTelemetrySchema, assignToSchema, createTaskBodySchema, taskActionInputSchema, taskContextSchema, taskPriorities, taskPrioritySchema, threadUpdateBodySchema, threadUpdateInputSchema, threadUpdateMessageSchema, threadUpdateStatusSchema, threadUpdateStatuses };
552
+ export { type AgentTelemetry, type AgentTelemetryInput, type ApprovalResult, type AssignToInput, type CreateTaskBody, type CreateTaskBodyInput, DEFAULT_TASK_PRIORITY, DEFAULT_THREAD_UPDATE_STATUS, type DiscriminatedApprovalResult, type ExtendedJSONSchema7, type Handler, type InferActionData, type InferJsonSchema7, type JSONSchema7, type JSONSchema7TypeName, LOWEST_TASK_PRIORITY, TASK_CONTEXT_FORMAT_VERSION, TASK_PRIORITY_RANK, type Task, type TaskAction, type TaskActionInput, type TaskContext, type TaskContextFormatVersion, type TaskContextInput, type TaskContextOutput, type TaskPriority, type TaskResponse, type TaskResult, type TaskStatus, type ThreadUpdate, type ThreadUpdateBody, type ThreadUpdateBodyInput, type ThreadUpdateInput, type ThreadUpdateResponse, type ThreadUpdateSource, type ThreadUpdateStatus, type TriggerHandler, type TupleElementIndices, type UiSchema, VIRTUAL_ASSIGN_TO_GROUP_SLUGS, type WebhookHandler, agentTelemetrySchema, assignToSchema, createTaskBodySchema, taskActionInputSchema, taskContextSchema, taskPriorities, taskPrioritySchema, threadUpdateBodySchema, threadUpdateInputSchema, threadUpdateMessageSchema, threadUpdateStatusSchema, threadUpdateStatuses };
@@ -1,5 +1,5 @@
1
1
  // src/schemas/index.ts
2
- import { z as z2 } from "zod";
2
+ import { z as z4 } from "zod";
3
3
 
4
4
  // ../core/src/utils/safe-url.ts
5
5
  var BLOCKED_HOSTNAMES = /* @__PURE__ */ new Set([
@@ -108,6 +108,25 @@ function isBlockedHostname(hostname) {
108
108
  }
109
109
  return isBlockedIpv4(host) || isBlockedIpv6(host);
110
110
  }
111
+ function isLoopbackHandlerUrl(urlString) {
112
+ let url;
113
+ try {
114
+ url = new URL(urlString);
115
+ } catch {
116
+ return false;
117
+ }
118
+ if (url.protocol !== "http:" && url.protocol !== "https:") {
119
+ return false;
120
+ }
121
+ if (url.username || url.password) {
122
+ return false;
123
+ }
124
+ const host = url.hostname.toLowerCase();
125
+ return host === "localhost" || host === "127.0.0.1" || host === "::1" || host === "[::1]" || host.endsWith(".localhost");
126
+ }
127
+ function isAllowedHandlerUrl(urlString) {
128
+ return isPublicHttpUrl(urlString) || isLoopbackHandlerUrl(urlString);
129
+ }
111
130
  function isPublicHttpUrl(urlString) {
112
131
  let url;
113
132
  try {
@@ -124,6 +143,7 @@ function isPublicHttpUrl(urlString) {
124
143
  return !isBlockedHostname(url.hostname);
125
144
  }
126
145
  var PUBLIC_HTTP_URL_ERROR = "URL must be a public http:// or https:// address";
146
+ var HANDLER_URL_ERROR = "Handler URL must be a public or loopback http:// or https:// address";
127
147
 
128
148
  // ../core/src/schemas/task.ts
129
149
  import { z } from "zod";
@@ -185,6 +205,9 @@ function validateContextPublicUrls(context) {
185
205
  var safeUrlSchema = z.string().refine((url) => isPublicHttpUrl(url), {
186
206
  message: PUBLIC_HTTP_URL_ERROR
187
207
  });
208
+ var handlerUrlSchema = z.string().refine((url) => isAllowedHandlerUrl(url), {
209
+ message: HANDLER_URL_ERROR
210
+ });
188
211
  var jsonSchema7Schema = z.custom(
189
212
  (val) => typeof val === "object" && val !== null,
190
213
  { message: "Must be a valid JSON Schema object" }
@@ -194,7 +217,7 @@ var uiSchemaSchema = z.custom((val) => typeof val === "object" && val !== null,
194
217
  });
195
218
  var webhookHandlerSchema = z.object({
196
219
  type: z.literal("webhook"),
197
- url: safeUrlSchema,
220
+ url: handlerUrlSchema,
198
221
  headers: z.record(z.string(), z.string())
199
222
  });
200
223
  var triggerHandlerSchema = webhookHandlerSchema.extend({
@@ -345,86 +368,253 @@ var agentChatSeedMessageSchema = z.object({
345
368
  action: agentChatSeedActionSchema
346
369
  }).optional()
347
370
  });
371
+ var eveAgentChatTransportSchema = z.object({
372
+ kind: z.literal("eve"),
373
+ chatId: z.string().min(1),
374
+ baseUrl: z.string().url(),
375
+ sessionId: z.string().optional(),
376
+ continuationToken: z.string().optional(),
377
+ streamIndex: z.number().int().nonnegative().optional(),
378
+ isStreaming: z.boolean().optional()
379
+ });
348
380
  var createAgentChatBodySchema = z.object({
349
- /** Trigger chat agent id (task slug). Required unless `parentChatId` is set. */
381
+ /** Agent id (eve agent name). Required unless `parentChatId` is set. */
350
382
  agentIdentifier: z.string().min(1).optional(),
351
383
  /** Inherit tenant/connection/agent from an existing chat (agent-spawned chats). */
352
384
  parentChatId: z.string().min(1).optional(),
353
- /** Convex tenantTriggerConnections id; resolved from the tenant when omitted. */
354
- connectionId: z.string().min(1).optional(),
385
+ /** Convex tenantEveConnections id; resolved from the tenant when omitted. */
386
+ eveConnectionId: z.string().min(1).optional(),
355
387
  /** Source application id; groups the chat under an inbox section. */
356
388
  app: z.string().min(1).optional(),
357
- assignTo: assignToSchema.optional(),
389
+ /** Email of the user who owns the chat. Required unless `parentChatId` is set. */
390
+ ownerEmail: z.string().email().optional(),
358
391
  title: z.string().min(1),
359
392
  messages: z.array(agentChatSeedMessageSchema).default([]),
360
393
  /** Provenance label stored on the session ("cron" | "agent" | ...). */
361
394
  source: z.string().min(1).optional()
362
395
  }).refine((data) => Boolean(data.agentIdentifier || data.parentChatId), {
363
396
  message: "Provide either agentIdentifier or parentChatId"
397
+ }).refine((data) => Boolean(data.ownerEmail || data.parentChatId), {
398
+ message: "Provide ownerEmail unless parentChatId is set"
364
399
  });
365
- var agentChatTransportBodySchema = z.object({
366
- chatId: z.string().min(1),
367
- publicAccessToken: z.string().min(1),
368
- lastEventId: z.string().optional(),
369
- isStreaming: z.boolean().optional()
400
+ var agentChatAuditToolBodySchema = z.object({
401
+ eveSessionId: z.string().min(1),
402
+ userId: z.string().min(1),
403
+ toolCallId: z.string().min(1),
404
+ toolName: z.string().min(1),
405
+ input: z.record(z.string(), z.unknown()).default({}),
406
+ success: z.boolean(),
407
+ status: z.enum(["completed", "failed", "rejected"]),
408
+ error: z.string().optional(),
409
+ idempotencyKey: z.string().optional()
410
+ });
411
+ var agentChatAuditInputBodySchema = z.object({
412
+ eveSessionId: z.string().min(1),
413
+ userId: z.string().min(1),
414
+ actionId: z.string().min(1),
415
+ actionTitle: z.string().optional(),
416
+ prompt: z.string().optional(),
417
+ data: z.record(z.string(), z.unknown()).optional(),
418
+ idempotencyKey: z.string().optional(),
419
+ /** Eve input request id — used to merge staged HITL metadata. */
420
+ requestId: z.string().optional(),
421
+ /** Eve tool call id — fallback lookup for staged HITL metadata. */
422
+ toolCallId: z.string().optional()
423
+ });
424
+ var eveHitlStagedOptionSchema = z.object({
425
+ id: z.string(),
426
+ label: z.string()
427
+ });
428
+ var agentChatStageHitlBodySchema = z.object({
429
+ eveSessionId: z.string().min(1),
430
+ requests: z.array(
431
+ z.object({
432
+ requestId: z.string().min(1),
433
+ toolCallId: z.string().min(1),
434
+ toolName: z.string().min(1),
435
+ prompt: z.string().min(1),
436
+ display: z.enum(["confirmation", "select", "text"]).optional(),
437
+ allowFreeform: z.boolean().optional(),
438
+ options: z.array(eveHitlStagedOptionSchema).optional(),
439
+ toolInput: z.record(z.string(), z.unknown()).optional()
440
+ })
441
+ )
442
+ });
443
+ var agentChatLinkTaskBodySchema = z.object({
444
+ eveSessionId: z.string().min(1),
445
+ publicTaskId: z.string().min(1),
446
+ toolCallId: z.string().min(1)
447
+ });
448
+
449
+ // ../core/src/schemas/tool-result-display.ts
450
+ import { z as z2 } from "zod";
451
+ var toolDisplayMetadataSchema = z2.object({
452
+ widget: z2.string().optional(),
453
+ title: z2.string().optional(),
454
+ description: z2.string().optional()
455
+ });
456
+ var toolDisplayEnvelopeSchema = z2.object({
457
+ display: toolDisplayMetadataSchema.optional(),
458
+ data: z2.record(z2.string(), z2.unknown()),
459
+ ui: z2.record(
460
+ z2.string(),
461
+ z2.object({
462
+ "ui:widget": z2.string().optional(),
463
+ "ui:title": z2.string().optional(),
464
+ "ui:description": z2.string().optional(),
465
+ "ui:options": z2.record(z2.string(), z2.unknown()).optional()
466
+ }).passthrough()
467
+ ).optional()
468
+ });
469
+
470
+ // ../core/src/schemas/agent-admin.ts
471
+ import { z as z3 } from "zod";
472
+ var tenantRoleSchema = z3.enum(["admin", "member"]);
473
+ var agentAdminUserSchema = z3.object({
474
+ id: z3.string(),
475
+ email: z3.string().email(),
476
+ name: z3.string()
477
+ });
478
+ var agentAdminMemberSchema = z3.object({
479
+ userId: z3.string(),
480
+ role: z3.string(),
481
+ membershipKind: z3.enum(["team", "assignee"]),
482
+ hasLoggedIn: z3.boolean(),
483
+ user: agentAdminUserSchema
484
+ });
485
+ var agentAdminGroupSchema = z3.object({
486
+ id: z3.string(),
487
+ name: z3.string(),
488
+ slug: z3.string(),
489
+ description: z3.string().nullable(),
490
+ memberCount: z3.number().optional()
491
+ });
492
+ var agentAdminGroupDetailSchema = agentAdminGroupSchema.extend({
493
+ members: z3.array(
494
+ z3.object({
495
+ userId: z3.string(),
496
+ user: agentAdminUserSchema
497
+ })
498
+ )
499
+ });
500
+ var agentAdminTaskSummarySchema = z3.object({
501
+ id: z3.string(),
502
+ convexId: z3.string(),
503
+ status: z3.string(),
504
+ type: z3.string().nullable(),
505
+ name: z3.string().nullable(),
506
+ description: z3.string().nullable(),
507
+ validUntil: z3.number(),
508
+ createdAt: z3.number(),
509
+ threadPriority: z3.string().nullable(),
510
+ handledByUserId: z3.string().nullable()
511
+ });
512
+ var inviteMemberBodySchema = z3.object({
513
+ email: z3.string().email(),
514
+ role: tenantRoleSchema.optional()
515
+ });
516
+ var updateMemberRoleBodySchema = z3.object({
517
+ role: tenantRoleSchema
518
+ });
519
+ var createGroupBodySchema = z3.object({
520
+ name: z3.string().min(1),
521
+ description: z3.string().optional()
522
+ });
523
+ var updateGroupBodySchema = z3.object({
524
+ name: z3.string().min(1).optional(),
525
+ description: z3.string().optional()
526
+ });
527
+ var addGroupMemberBodySchema = z3.object({
528
+ userId: z3.string().min(1).describe("Convex user id or member email.")
529
+ });
530
+ var listTasksQuerySchema = z3.object({
531
+ statusFilter: z3.enum(["all", "open", "handled", "expired"]).optional(),
532
+ typeFilter: z3.string().optional(),
533
+ appFilter: z3.string().optional(),
534
+ sortField: z3.enum(["type", "date", "status", "validUntil"]).optional(),
535
+ sortDirection: z3.enum(["asc", "desc"]).optional(),
536
+ limit: z3.coerce.number().int().positive().max(100).optional(),
537
+ cursor: z3.string().optional()
538
+ });
539
+ var searchTasksQuerySchema = z3.object({
540
+ q: z3.string().min(1),
541
+ limit: z3.coerce.number().int().positive().max(100).optional()
542
+ });
543
+ var assignTasksResultSchema = z3.object({
544
+ taskId: z3.string(),
545
+ success: z3.boolean(),
546
+ message: z3.string().optional(),
547
+ name: z3.string().nullable().optional(),
548
+ description: z3.string().nullable().optional(),
549
+ type: z3.string().nullable().optional()
550
+ });
551
+ var assignTasksResponseSchema = z3.object({
552
+ results: z3.array(assignTasksResultSchema)
553
+ });
554
+ var assignTasksBodySchema = z3.object({
555
+ taskIds: z3.array(z3.string().min(1)).min(1).max(100),
556
+ assignTo: assignToSchema.refine(
557
+ (value) => (value.users?.length ?? 0) > 0 || (value.groups?.length ?? 0) > 0,
558
+ { message: "assignTo needs at least one user email or group slug." }
559
+ )
370
560
  });
371
561
 
372
562
  // src/schemas/index.ts
373
- var safeUrlSchema2 = z2.string().refine((url) => isPublicHttpUrl(url), {
374
- message: PUBLIC_HTTP_URL_ERROR
563
+ var handlerUrlSchema2 = z4.string().refine((url) => isAllowedHandlerUrl(url), {
564
+ message: HANDLER_URL_ERROR
375
565
  });
376
- var jsonSchema7Schema2 = z2.custom(
566
+ var jsonSchema7Schema2 = z4.custom(
377
567
  (val) => typeof val === "object" && val !== null,
378
568
  { message: "Must be a valid JSON Schema object" }
379
569
  );
380
- var uiSchemaSchema2 = z2.custom((val) => typeof val === "object" && val !== null, {
570
+ var uiSchemaSchema2 = z4.custom((val) => typeof val === "object" && val !== null, {
381
571
  message: "Must be a valid UiSchema object"
382
572
  });
383
- var webhookHandlerSchema2 = z2.object({
384
- type: z2.literal("webhook"),
385
- url: safeUrlSchema2,
386
- headers: z2.record(z2.string(), z2.string())
573
+ var webhookHandlerSchema2 = z4.object({
574
+ type: z4.literal("webhook"),
575
+ url: handlerUrlSchema2,
576
+ headers: z4.record(z4.string(), z4.string())
387
577
  });
388
578
  var triggerHandlerSchema2 = webhookHandlerSchema2.extend({
389
- type: z2.literal("trigger"),
390
- tokenId: z2.string().min(1)
391
- });
392
- var handlerSchema2 = z2.discriminatedUnion("type", [webhookHandlerSchema2, triggerHandlerSchema2]);
393
- var taskActionInputSchema2 = z2.object({
394
- id: z2.string().min(1),
395
- title: z2.string().min(1),
396
- description: z2.string().optional(),
579
+ type: z4.literal("trigger"),
580
+ tokenId: z4.string().min(1)
581
+ });
582
+ var handlerSchema2 = z4.discriminatedUnion("type", [webhookHandlerSchema2, triggerHandlerSchema2]);
583
+ var taskActionInputSchema2 = z4.object({
584
+ id: z4.string().min(1),
585
+ title: z4.string().min(1),
586
+ description: z4.string().optional(),
397
587
  schema: jsonSchema7Schema2.optional(),
398
588
  ui: uiSchemaSchema2.optional(),
399
- data: z2.record(z2.string(), z2.unknown()).optional()
589
+ data: z4.record(z4.string(), z4.unknown()).optional()
400
590
  });
401
591
  var taskActionSchema2 = taskActionInputSchema2.extend({
402
- handlers: z2.array(handlerSchema2).min(1).optional()
403
- });
404
- var uiFieldSchemaSchema2 = z2.object({
405
- "ui:widget": z2.string().optional(),
406
- "ui:title": z2.string().optional(),
407
- "ui:description": z2.string().optional(),
408
- "ui:options": z2.record(z2.string(), z2.unknown()).optional(),
409
- items: z2.lazy(() => z2.record(z2.string(), uiFieldSchemaSchema2)).optional()
592
+ handlers: z4.array(handlerSchema2).min(1).optional()
593
+ });
594
+ var uiFieldSchemaSchema2 = z4.object({
595
+ "ui:widget": z4.string().optional(),
596
+ "ui:title": z4.string().optional(),
597
+ "ui:description": z4.string().optional(),
598
+ "ui:options": z4.record(z4.string(), z4.unknown()).optional(),
599
+ items: z4.lazy(() => z4.record(z4.string(), uiFieldSchemaSchema2)).optional()
410
600
  }).passthrough();
411
- var contextUiSchema2 = z2.record(z2.string(), uiFieldSchemaSchema2).optional();
412
- var contextDataSchema2 = z2.object({
413
- data: z2.record(z2.string(), z2.unknown()),
601
+ var contextUiSchema2 = z4.record(z4.string(), uiFieldSchemaSchema2).optional();
602
+ var contextDataSchema2 = z4.object({
603
+ data: z4.record(z4.string(), z4.unknown()),
414
604
  ui: contextUiSchema2
415
605
  }).optional();
416
606
  var TASK_CONTEXT_FORMAT_VERSION2 = 2;
417
- var taskContextObjectBaseSchema2 = z2.object({
418
- app: z2.string().min(1).optional(),
419
- type: z2.string().min(1),
420
- name: z2.string().min(1),
421
- description: z2.string().optional(),
422
- validUntil: z2.string().optional(),
607
+ var taskContextObjectBaseSchema2 = z4.object({
608
+ app: z4.string().min(1).optional(),
609
+ type: z4.string().min(1),
610
+ name: z4.string().min(1),
611
+ description: z4.string().optional(),
612
+ validUntil: z4.string().optional(),
423
613
  context: contextDataSchema2,
424
- contextVersion: z2.literal(2).optional(),
614
+ contextVersion: z4.literal(2).optional(),
425
615
  /** @deprecated Use `contextVersion`. Accepted on ingest only. */
426
- version: z2.literal(2).optional(),
427
- actions: z2.array(taskActionSchema2).min(1, "At least one action is required")
616
+ version: z4.literal(2).optional(),
617
+ actions: z4.array(taskActionSchema2).min(1, "At least one action is required")
428
618
  });
429
619
  function normalizeTaskContextVersion2(data) {
430
620
  const { version: legacyVersion, contextVersion, ...rest } = data;
@@ -440,7 +630,7 @@ function refineContextPublicUrls2(data, ctx) {
440
630
  const error = validateContextPublicUrls(data.context);
441
631
  if (error) {
442
632
  ctx.addIssue({
443
- code: z2.ZodIssueCode.custom,
633
+ code: z4.ZodIssueCode.custom,
444
634
  message: error,
445
635
  path: ["context"]
446
636
  });
@@ -449,9 +639,10 @@ function refineContextPublicUrls2(data, ctx) {
449
639
  var taskContextSchema2 = taskContextObjectSchema2.superRefine(
450
640
  refineContextPublicUrls2
451
641
  );
452
- var assignToSchema2 = z2.object({
453
- users: z2.array(z2.string().email()).optional(),
454
- groups: z2.array(z2.string().min(1)).optional()
642
+ var VIRTUAL_ASSIGN_TO_GROUP_SLUGS = ["all", "admins"];
643
+ var assignToSchema2 = z4.object({
644
+ users: z4.array(z4.string().email()).optional(),
645
+ groups: z4.array(z4.string().min(1)).optional()
455
646
  }).refine(
456
647
  (data) => {
457
648
  const groups = data.groups ?? [];
@@ -462,7 +653,7 @@ var assignToSchema2 = z2.object({
462
653
  },
463
654
  { message: 'Cannot combine "all" with other group slugs' }
464
655
  );
465
- var threadUpdateMessageSchema2 = z2.string().min(1).max(500);
656
+ var threadUpdateMessageSchema2 = z4.string().min(1).max(500);
466
657
  var threadUpdateStatuses2 = [
467
658
  "info",
468
659
  "queued",
@@ -472,14 +663,14 @@ var threadUpdateStatuses2 = [
472
663
  "failed",
473
664
  "cancelled"
474
665
  ];
475
- var threadUpdateStatusSchema2 = z2.enum(threadUpdateStatuses2);
666
+ var threadUpdateStatusSchema2 = z4.enum(threadUpdateStatuses2);
476
667
  var DEFAULT_THREAD_UPDATE_STATUS = "info";
477
- var threadUpdateInputSchema2 = z2.object({
668
+ var threadUpdateInputSchema2 = z4.object({
478
669
  message: threadUpdateMessageSchema2,
479
670
  status: threadUpdateStatusSchema2.optional()
480
671
  });
481
672
  var taskPriorities2 = ["low", "normal", "high", "urgent"];
482
- var taskPrioritySchema2 = z2.enum(taskPriorities2);
673
+ var taskPrioritySchema2 = z4.enum(taskPriorities2);
483
674
  var DEFAULT_TASK_PRIORITY = "normal";
484
675
  var LOWEST_TASK_PRIORITY = "low";
485
676
  var TASK_PRIORITY_RANK = {
@@ -488,8 +679,8 @@ var TASK_PRIORITY_RANK = {
488
679
  high: 3,
489
680
  urgent: 4
490
681
  };
491
- var agentTelemetrySchema2 = z2.object({
492
- version: z2.string().min(1)
682
+ var agentTelemetrySchema2 = z4.object({
683
+ version: z4.string().min(1)
493
684
  });
494
685
  var createTaskBodySchema2 = taskContextObjectBaseSchema2.extend({
495
686
  assignTo: assignToSchema2.optional(),
@@ -497,7 +688,7 @@ var createTaskBodySchema2 = taskContextObjectBaseSchema2.extend({
497
688
  * Groups related tasks together. When omitted, the server generates one and
498
689
  * returns it so the caller can reuse it on later tasks in the same thread.
499
690
  */
500
- threadId: z2.string().min(1).optional(),
691
+ threadId: z4.string().min(1).optional(),
501
692
  /**
502
693
  * Optional thread priority. When set, applies to the whole thread and
503
694
  * overwrites any previous priority. Omit on later tasks to leave unchanged.
@@ -517,6 +708,7 @@ export {
517
708
  LOWEST_TASK_PRIORITY,
518
709
  TASK_CONTEXT_FORMAT_VERSION2 as TASK_CONTEXT_FORMAT_VERSION,
519
710
  TASK_PRIORITY_RANK,
711
+ VIRTUAL_ASSIGN_TO_GROUP_SLUGS,
520
712
  agentTelemetrySchema2 as agentTelemetrySchema,
521
713
  assignToSchema2 as assignToSchema,
522
714
  createTaskBodySchema2 as createTaskBodySchema,