robotrock 1.3.4 → 1.5.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 (80) hide show
  1. package/README.md +11 -1
  2. package/dist/agent-admin.d.ts +5 -0
  3. package/dist/agent-admin.js +75 -2
  4. package/dist/agent-admin.js.map +1 -1
  5. package/dist/ai/index.d.ts +5 -5
  6. package/dist/ai/index.js +120 -4
  7. package/dist/ai/index.js.map +1 -1
  8. package/dist/ai/trigger.d.ts +3 -3
  9. package/dist/ai/trigger.js +120 -4
  10. package/dist/ai/trigger.js.map +1 -1
  11. package/dist/ai/workflow.d.ts +3 -3
  12. package/dist/ai/workflow.js +120 -4
  13. package/dist/ai/workflow.js.map +1 -1
  14. package/dist/{client-CZ5eWH5v.d.ts → client-BxbxttFH.d.ts} +19 -1
  15. package/dist/eve/agent/index.d.ts +4 -4
  16. package/dist/eve/agent/index.js +577 -261
  17. package/dist/eve/agent/index.js.map +1 -1
  18. package/dist/eve/index.d.ts +4 -4
  19. package/dist/eve/index.js +507 -7
  20. package/dist/eve/index.js.map +1 -1
  21. package/dist/eve/tools/admin/assign-tasks.d.ts +40 -19
  22. package/dist/eve/tools/admin/assign-tasks.js +334 -25
  23. package/dist/eve/tools/admin/assign-tasks.js.map +1 -1
  24. package/dist/eve/tools/admin/get-workspace-usage.d.ts +71 -0
  25. package/dist/eve/tools/admin/get-workspace-usage.js +1365 -0
  26. package/dist/eve/tools/admin/get-workspace-usage.js.map +1 -0
  27. package/dist/eve/tools/admin/manage-groups.d.ts +122 -7
  28. package/dist/eve/tools/admin/manage-groups.js +350 -31
  29. package/dist/eve/tools/admin/manage-groups.js.map +1 -1
  30. package/dist/eve/tools/admin/manage-team-members.d.ts +86 -7
  31. package/dist/eve/tools/admin/manage-team-members.js +318 -16
  32. package/dist/eve/tools/admin/manage-team-members.js.map +1 -1
  33. package/dist/eve/tools/admin/query-tasks.d.ts +82 -7
  34. package/dist/eve/tools/admin/query-tasks.js +363 -40
  35. package/dist/eve/tools/admin/query-tasks.js.map +1 -1
  36. package/dist/eve/tools/catalog/generate-image.d.ts +64 -0
  37. package/dist/eve/tools/catalog/generate-image.js +2077 -0
  38. package/dist/eve/tools/catalog/generate-image.js.map +1 -0
  39. package/dist/eve/tools/catalog/generate-random-chart.d.ts +77 -0
  40. package/dist/eve/tools/catalog/generate-random-chart.js +411 -0
  41. package/dist/eve/tools/catalog/generate-random-chart.js.map +1 -0
  42. package/dist/eve/tools/catalog/search-products.d.ts +36 -43
  43. package/dist/eve/tools/catalog/search-products.js +253 -6
  44. package/dist/eve/tools/catalog/search-products.js.map +1 -1
  45. package/dist/eve/tools/identity/index.d.ts +2 -1
  46. package/dist/eve/tools/identity/index.js +26 -6
  47. package/dist/eve/tools/identity/index.js.map +1 -1
  48. package/dist/eve/tools/identity/my-access.d.ts +88 -3
  49. package/dist/eve/tools/identity/my-access.js +26 -6
  50. package/dist/eve/tools/identity/my-access.js.map +1 -1
  51. package/dist/eve/tools/identity/whoami.d.ts +1 -1
  52. package/dist/eve/tools/identity/whoami.js.map +1 -1
  53. package/dist/eve/tools/inbox/create-task.d.ts +1 -1
  54. package/dist/eve/tools/inbox/create-task.js +119 -2
  55. package/dist/eve/tools/inbox/create-task.js.map +1 -1
  56. package/dist/eve/tools/inbox/index.d.ts +1 -1
  57. package/dist/eve/tools/inbox/index.js +119 -2
  58. package/dist/eve/tools/inbox/index.js.map +1 -1
  59. package/dist/eve/tools/index.d.ts +5 -2
  60. package/dist/eve/tools/index.js +964 -115
  61. package/dist/eve/tools/index.js.map +1 -1
  62. package/dist/index-amkHKVGs.d.ts +1054 -0
  63. package/dist/index.d.ts +5 -5
  64. package/dist/index.js +328 -13
  65. package/dist/index.js.map +1 -1
  66. package/dist/schemas/index.js +67 -1
  67. package/dist/schemas/index.js.map +1 -1
  68. package/dist/{tool-approval-bridge-DnGaRES4.d.ts → tool-approval-bridge-Cz7qQUpw.d.ts} +1 -1
  69. package/dist/{tool-reply-guidance-C3qrT1In.d.ts → tool-reply-guidance-CJko9liH.d.ts} +5 -2
  70. package/dist/tool-result-ui-meta-KT0VafEO.d.ts +52 -0
  71. package/dist/trigger/index.d.ts +1 -1
  72. package/dist/trigger/index.js +118 -2
  73. package/dist/trigger/index.js.map +1 -1
  74. package/dist/{trigger--qTIK0s6.d.ts → trigger-C1ooSegc.d.ts} +2 -2
  75. package/dist/workflow/index.d.ts +1 -1
  76. package/dist/workflow/index.js +118 -2
  77. package/dist/workflow/index.js.map +1 -1
  78. package/package.json +21 -4
  79. package/dist/index-Blq0XoAr.d.ts +0 -204
  80. package/dist/tool-ui-hint-CMpug5sC.d.ts +0 -13
@@ -1,6 +1,6 @@
1
1
  export { CREATE_INBOX_TASK_TOOL_NAME, CreateInboxTaskToolInput, DefineCreateInboxTaskToolOptions, createInboxTaskInputSchema, createInboxTaskTool, defineCreateInboxTaskTool } from './create-task.js';
2
2
  import 'eve/tools';
3
- import '../../../tool-reply-guidance-C3qrT1In.js';
3
+ import '../../../tool-reply-guidance-CJko9liH.js';
4
4
  import 'zod';
5
5
  import '../../../tenant-DmN0MMyC.js';
6
6
  import 'eve/context';
@@ -449,6 +449,40 @@ var agentChatLinkTaskBodySchema = z.object({
449
449
  publicTaskId: z.string().min(1),
450
450
  toolCallId: z.string().min(1)
451
451
  });
452
+ var AGENT_FILE_TAGS_MAX = 20;
453
+ var AGENT_FILE_TAG_MAX_LENGTH = 64;
454
+ function normalizeAgentFileTags(tags) {
455
+ if (!tags?.length) return void 0;
456
+ const seen = /* @__PURE__ */ new Set();
457
+ const out = [];
458
+ for (const raw of tags) {
459
+ const tag = raw.trim().toLowerCase().slice(0, AGENT_FILE_TAG_MAX_LENGTH);
460
+ if (!tag || seen.has(tag)) continue;
461
+ seen.add(tag);
462
+ out.push(tag);
463
+ if (out.length >= AGENT_FILE_TAGS_MAX) break;
464
+ }
465
+ return out.length > 0 ? out : void 0;
466
+ }
467
+ var agentChatUploadImageBodySchema = z.object({
468
+ mediaType: z.string().min(1),
469
+ /** Raw base64 (no data: URL prefix). */
470
+ base64: z.string().min(1),
471
+ chatId: z.string().min(1).optional(),
472
+ publicTaskId: z.string().min(1).optional(),
473
+ source: z.string().min(1).optional(),
474
+ /** Display / search name (e.g. `sunset-robot.png`). */
475
+ filename: z.string().min(1).max(255).optional(),
476
+ /** Human-readable description (e.g. generation prompt). */
477
+ description: z.string().min(1).max(2e3).optional(),
478
+ /**
479
+ * Optional labels for later grouping/filtering.
480
+ * Normalized to lowercase trimmed unique strings (max 20, 64 chars each).
481
+ */
482
+ tags: z.array(z.string().min(1).max(AGENT_FILE_TAG_MAX_LENGTH)).max(AGENT_FILE_TAGS_MAX).optional().transform((tags) => normalizeAgentFileTags(tags))
483
+ }).refine((data) => Boolean(data.chatId || data.publicTaskId), {
484
+ message: "Provide chatId and/or publicTaskId"
485
+ });
452
486
 
453
487
  // ../core/src/schemas/tool-result-display.ts
454
488
  import { z as z2 } from "zod";
@@ -477,7 +511,8 @@ var tenantRoleSchema = z3.enum(["admin", "member"]);
477
511
  var agentAdminUserSchema = z3.object({
478
512
  id: z3.string(),
479
513
  email: z3.string().email(),
480
- name: z3.string()
514
+ name: z3.string(),
515
+ profilePictureUrl: z3.string().nullable().optional()
481
516
  });
482
517
  var agentAdminMemberSchema = z3.object({
483
518
  userId: z3.string(),
@@ -562,6 +597,37 @@ var assignTasksBodySchema = z3.object({
562
597
  { message: "assignTo needs at least one user email or group slug." }
563
598
  )
564
599
  });
600
+ var agentAdminPlanLimitsSchema = z3.object({
601
+ tasksPerDay: z3.number(),
602
+ members: z3.number(),
603
+ apiKeys: z3.number(),
604
+ groups: z3.number(),
605
+ auditLogRetention: z3.number(),
606
+ rateLimitPerSecond: z3.number(),
607
+ taskRetentionDays: z3.number()
608
+ });
609
+ var agentAdminUsageSchema = z3.object({
610
+ workspace: z3.string(),
611
+ planName: z3.string(),
612
+ planType: z3.string(),
613
+ trialState: z3.enum(["none", "active", "expired"]),
614
+ daysRemaining: z3.number().nullable(),
615
+ isPaidPro: z3.boolean(),
616
+ subscriptionStatus: z3.string().nullable(),
617
+ tasksToday: z3.number(),
618
+ maxTasksPerDay: z3.number().nullable(),
619
+ tasksResetAt: z3.number(),
620
+ openTasks: z3.number(),
621
+ totalTasks: z3.number(),
622
+ seatsCurrent: z3.number(),
623
+ seatsMax: z3.number().nullable(),
624
+ groupsCurrent: z3.number(),
625
+ groupsMax: z3.number().nullable(),
626
+ apiKeysCurrent: z3.number(),
627
+ apiKeysMax: z3.number().nullable(),
628
+ rateLimitPerSecond: z3.number(),
629
+ limits: agentAdminPlanLimitsSchema
630
+ });
565
631
 
566
632
  // src/schemas/index.ts
567
633
  var handlerUrlSchema2 = z4.string().refine((url) => isAllowedHandlerUrl(url), {
@@ -865,7 +931,11 @@ function resolveRobotRockAuthConfig(overrides) {
865
931
  "RobotRock auth is required. Set ROBOTROCK_API_KEY, ROBOTROCK_AGENT_SERVICE_TOKEN with tenant context, or pass auth when creating the client."
866
932
  );
867
933
  }
868
- return { kind: "apiKey", apiKey };
934
+ return {
935
+ kind: "apiKey",
936
+ apiKey,
937
+ ...overrides?.actingUserId?.trim() ? { actingUserId: overrides.actingUserId.trim() } : {}
938
+ };
869
939
  }
870
940
 
871
941
  // src/chat-correlation.ts
@@ -1070,6 +1140,51 @@ function createChatsApi(config) {
1070
1140
  data
1071
1141
  );
1072
1142
  }
1143
+ },
1144
+ async uploadImage(input) {
1145
+ const validation = agentChatUploadImageBodySchema.safeParse(input);
1146
+ if (!validation.success) {
1147
+ throw new RobotRockError(
1148
+ `Invalid image upload: ${validation.error.issues[0]?.message}`,
1149
+ 400,
1150
+ validation.error.issues
1151
+ );
1152
+ }
1153
+ const response = await fetch(`${config.baseUrl}/agent-chats/images`, {
1154
+ method: "POST",
1155
+ headers: headers(),
1156
+ body: JSON.stringify(validation.data)
1157
+ });
1158
+ const data = await parseResponseBody(response);
1159
+ if (!response.ok) {
1160
+ throw new RobotRockError(
1161
+ getErrorMessage(data, "Failed to upload chat image"),
1162
+ response.status,
1163
+ data
1164
+ );
1165
+ }
1166
+ const uploaded = data;
1167
+ if (typeof uploaded.storageId !== "string" || typeof uploaded.url !== "string" || typeof uploaded.mediaType !== "string") {
1168
+ throw new RobotRockError(
1169
+ "Image upload returned an invalid response",
1170
+ 500,
1171
+ data
1172
+ );
1173
+ }
1174
+ return {
1175
+ storageId: uploaded.storageId,
1176
+ url: uploaded.url,
1177
+ mediaType: uploaded.mediaType,
1178
+ ...typeof uploaded.chatId === "string" ? { chatId: uploaded.chatId } : {},
1179
+ ...typeof uploaded.publicTaskId === "string" ? { publicTaskId: uploaded.publicTaskId } : {},
1180
+ ...typeof uploaded.filename === "string" ? { filename: uploaded.filename } : {},
1181
+ ...typeof uploaded.description === "string" ? { description: uploaded.description } : {},
1182
+ ...Array.isArray(uploaded.tags) ? {
1183
+ tags: uploaded.tags.filter(
1184
+ (tag) => typeof tag === "string"
1185
+ )
1186
+ } : {}
1187
+ };
1073
1188
  }
1074
1189
  };
1075
1190
  }
@@ -1139,6 +1254,7 @@ var RobotRock = class {
1139
1254
  }
1140
1255
  this.auth = resolveRobotRockAuthConfig({
1141
1256
  ...apiKey ? { apiKey } : {},
1257
+ ...config.actingUserId ? { actingUserId: config.actingUserId } : {},
1142
1258
  ...agentService ? { agentService } : {}
1143
1259
  });
1144
1260
  this.chatCorrelation = config.chatCorrelation;
@@ -1536,6 +1652,7 @@ function tryCreateBoundRobotRockClient(ctx) {
1536
1652
  if (apiKey) {
1537
1653
  return createClient({
1538
1654
  apiKey,
1655
+ ...caller?.userId ? { actingUserId: caller.userId } : {},
1539
1656
  baseUrl: process.env.ROBOTROCK_BASE_URL?.trim(),
1540
1657
  chatCorrelation
1541
1658
  });