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.
- package/README.md +11 -1
- package/dist/agent-admin.d.ts +5 -0
- package/dist/agent-admin.js +75 -2
- package/dist/agent-admin.js.map +1 -1
- package/dist/ai/index.d.ts +5 -5
- package/dist/ai/index.js +120 -4
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/trigger.d.ts +3 -3
- package/dist/ai/trigger.js +120 -4
- package/dist/ai/trigger.js.map +1 -1
- package/dist/ai/workflow.d.ts +3 -3
- package/dist/ai/workflow.js +120 -4
- package/dist/ai/workflow.js.map +1 -1
- package/dist/{client-CZ5eWH5v.d.ts → client-BxbxttFH.d.ts} +19 -1
- package/dist/eve/agent/index.d.ts +4 -4
- package/dist/eve/agent/index.js +577 -261
- package/dist/eve/agent/index.js.map +1 -1
- package/dist/eve/index.d.ts +4 -4
- package/dist/eve/index.js +507 -7
- package/dist/eve/index.js.map +1 -1
- package/dist/eve/tools/admin/assign-tasks.d.ts +40 -19
- package/dist/eve/tools/admin/assign-tasks.js +334 -25
- package/dist/eve/tools/admin/assign-tasks.js.map +1 -1
- package/dist/eve/tools/admin/get-workspace-usage.d.ts +71 -0
- package/dist/eve/tools/admin/get-workspace-usage.js +1365 -0
- package/dist/eve/tools/admin/get-workspace-usage.js.map +1 -0
- package/dist/eve/tools/admin/manage-groups.d.ts +122 -7
- package/dist/eve/tools/admin/manage-groups.js +350 -31
- package/dist/eve/tools/admin/manage-groups.js.map +1 -1
- package/dist/eve/tools/admin/manage-team-members.d.ts +86 -7
- package/dist/eve/tools/admin/manage-team-members.js +318 -16
- package/dist/eve/tools/admin/manage-team-members.js.map +1 -1
- package/dist/eve/tools/admin/query-tasks.d.ts +82 -7
- package/dist/eve/tools/admin/query-tasks.js +363 -40
- package/dist/eve/tools/admin/query-tasks.js.map +1 -1
- package/dist/eve/tools/catalog/generate-image.d.ts +64 -0
- package/dist/eve/tools/catalog/generate-image.js +2077 -0
- package/dist/eve/tools/catalog/generate-image.js.map +1 -0
- package/dist/eve/tools/catalog/generate-random-chart.d.ts +77 -0
- package/dist/eve/tools/catalog/generate-random-chart.js +411 -0
- package/dist/eve/tools/catalog/generate-random-chart.js.map +1 -0
- package/dist/eve/tools/catalog/search-products.d.ts +36 -43
- package/dist/eve/tools/catalog/search-products.js +253 -6
- package/dist/eve/tools/catalog/search-products.js.map +1 -1
- package/dist/eve/tools/identity/index.d.ts +2 -1
- package/dist/eve/tools/identity/index.js +26 -6
- package/dist/eve/tools/identity/index.js.map +1 -1
- package/dist/eve/tools/identity/my-access.d.ts +88 -3
- package/dist/eve/tools/identity/my-access.js +26 -6
- package/dist/eve/tools/identity/my-access.js.map +1 -1
- package/dist/eve/tools/identity/whoami.d.ts +1 -1
- package/dist/eve/tools/identity/whoami.js.map +1 -1
- package/dist/eve/tools/inbox/create-task.d.ts +1 -1
- package/dist/eve/tools/inbox/create-task.js +119 -2
- package/dist/eve/tools/inbox/create-task.js.map +1 -1
- package/dist/eve/tools/inbox/index.d.ts +1 -1
- package/dist/eve/tools/inbox/index.js +119 -2
- package/dist/eve/tools/inbox/index.js.map +1 -1
- package/dist/eve/tools/index.d.ts +5 -2
- package/dist/eve/tools/index.js +964 -115
- package/dist/eve/tools/index.js.map +1 -1
- package/dist/index-amkHKVGs.d.ts +1054 -0
- package/dist/index.d.ts +5 -5
- package/dist/index.js +328 -13
- package/dist/index.js.map +1 -1
- package/dist/schemas/index.js +67 -1
- package/dist/schemas/index.js.map +1 -1
- package/dist/{tool-approval-bridge-DnGaRES4.d.ts → tool-approval-bridge-Cz7qQUpw.d.ts} +1 -1
- package/dist/{tool-reply-guidance-C3qrT1In.d.ts → tool-reply-guidance-CJko9liH.d.ts} +5 -2
- package/dist/tool-result-ui-meta-KT0VafEO.d.ts +52 -0
- package/dist/trigger/index.d.ts +1 -1
- package/dist/trigger/index.js +118 -2
- package/dist/trigger/index.js.map +1 -1
- package/dist/{trigger--qTIK0s6.d.ts → trigger-C1ooSegc.d.ts} +2 -2
- package/dist/workflow/index.d.ts +1 -1
- package/dist/workflow/index.js +118 -2
- package/dist/workflow/index.js.map +1 -1
- package/package.json +21 -4
- package/dist/index-Blq0XoAr.d.ts +0 -204
- package/dist/tool-ui-hint-CMpug5sC.d.ts +0 -13
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import * as eve_tools from 'eve/tools';
|
|
2
|
-
import { T as ToolResultWithReplyGuidance } from '../../../tool-reply-guidance-C3qrT1In.js';
|
|
3
2
|
import { z } from 'zod';
|
|
4
3
|
|
|
5
4
|
declare const MANAGE_TEAM_MEMBERS_TOOL_NAME = "manage_team_members";
|
|
@@ -23,22 +22,102 @@ declare function defineManageTeamMembersTool(): eve_tools.ToolDefinition<{
|
|
|
23
22
|
userId?: string | undefined;
|
|
24
23
|
email?: string | undefined;
|
|
25
24
|
role?: "admin" | "member" | undefined;
|
|
26
|
-
},
|
|
25
|
+
}, {
|
|
26
|
+
members: {
|
|
27
|
+
name: string;
|
|
28
|
+
email: string;
|
|
29
|
+
role: string;
|
|
30
|
+
membershipKind: string;
|
|
31
|
+
profilePictureUrl: string | null;
|
|
32
|
+
}[];
|
|
33
|
+
replyGuidance?: string | undefined;
|
|
34
|
+
ui?: {
|
|
35
|
+
present?: boolean | undefined;
|
|
36
|
+
entity?: string | undefined;
|
|
37
|
+
rowsPath?: string | undefined;
|
|
38
|
+
layout?: "list" | "chart" | "table" | undefined;
|
|
39
|
+
} | undefined;
|
|
40
|
+
uiHint?: "list" | "chart" | "table" | undefined;
|
|
41
|
+
} | {
|
|
42
|
+
name: string;
|
|
43
|
+
email: string;
|
|
44
|
+
role: string;
|
|
45
|
+
membershipKind: string;
|
|
46
|
+
profilePictureUrl: string | null;
|
|
47
|
+
replyGuidance?: string | undefined;
|
|
48
|
+
ui?: {
|
|
49
|
+
present?: boolean | undefined;
|
|
50
|
+
entity?: string | undefined;
|
|
51
|
+
rowsPath?: string | undefined;
|
|
52
|
+
layout?: "list" | "chart" | "table" | undefined;
|
|
53
|
+
} | undefined;
|
|
54
|
+
uiHint?: "list" | "chart" | "table" | undefined;
|
|
55
|
+
} | {
|
|
27
56
|
ok: false;
|
|
28
|
-
status: number;
|
|
29
57
|
message: string;
|
|
30
|
-
|
|
58
|
+
status?: number | undefined;
|
|
59
|
+
response?: unknown;
|
|
60
|
+
} | {
|
|
61
|
+
[x: string]: unknown;
|
|
62
|
+
replyGuidance?: string | undefined;
|
|
63
|
+
ui?: {
|
|
64
|
+
present?: boolean | undefined;
|
|
65
|
+
entity?: string | undefined;
|
|
66
|
+
rowsPath?: string | undefined;
|
|
67
|
+
layout?: "list" | "chart" | "table" | undefined;
|
|
68
|
+
} | undefined;
|
|
69
|
+
uiHint?: "list" | "chart" | "table" | undefined;
|
|
31
70
|
}>;
|
|
32
71
|
declare const manageTeamMembersTool: eve_tools.ToolDefinition<{
|
|
33
72
|
action: "list" | "get" | "invite" | "update_role" | "remove";
|
|
34
73
|
userId?: string | undefined;
|
|
35
74
|
email?: string | undefined;
|
|
36
75
|
role?: "admin" | "member" | undefined;
|
|
37
|
-
},
|
|
76
|
+
}, {
|
|
77
|
+
members: {
|
|
78
|
+
name: string;
|
|
79
|
+
email: string;
|
|
80
|
+
role: string;
|
|
81
|
+
membershipKind: string;
|
|
82
|
+
profilePictureUrl: string | null;
|
|
83
|
+
}[];
|
|
84
|
+
replyGuidance?: string | undefined;
|
|
85
|
+
ui?: {
|
|
86
|
+
present?: boolean | undefined;
|
|
87
|
+
entity?: string | undefined;
|
|
88
|
+
rowsPath?: string | undefined;
|
|
89
|
+
layout?: "list" | "chart" | "table" | undefined;
|
|
90
|
+
} | undefined;
|
|
91
|
+
uiHint?: "list" | "chart" | "table" | undefined;
|
|
92
|
+
} | {
|
|
93
|
+
name: string;
|
|
94
|
+
email: string;
|
|
95
|
+
role: string;
|
|
96
|
+
membershipKind: string;
|
|
97
|
+
profilePictureUrl: string | null;
|
|
98
|
+
replyGuidance?: string | undefined;
|
|
99
|
+
ui?: {
|
|
100
|
+
present?: boolean | undefined;
|
|
101
|
+
entity?: string | undefined;
|
|
102
|
+
rowsPath?: string | undefined;
|
|
103
|
+
layout?: "list" | "chart" | "table" | undefined;
|
|
104
|
+
} | undefined;
|
|
105
|
+
uiHint?: "list" | "chart" | "table" | undefined;
|
|
106
|
+
} | {
|
|
38
107
|
ok: false;
|
|
39
|
-
status: number;
|
|
40
108
|
message: string;
|
|
41
|
-
|
|
109
|
+
status?: number | undefined;
|
|
110
|
+
response?: unknown;
|
|
111
|
+
} | {
|
|
112
|
+
[x: string]: unknown;
|
|
113
|
+
replyGuidance?: string | undefined;
|
|
114
|
+
ui?: {
|
|
115
|
+
present?: boolean | undefined;
|
|
116
|
+
entity?: string | undefined;
|
|
117
|
+
rowsPath?: string | undefined;
|
|
118
|
+
layout?: "list" | "chart" | "table" | undefined;
|
|
119
|
+
} | undefined;
|
|
120
|
+
uiHint?: "list" | "chart" | "table" | undefined;
|
|
42
121
|
}>;
|
|
43
122
|
|
|
44
123
|
export { MANAGE_TEAM_MEMBERS_TOOL_NAME, defineManageTeamMembersTool, manageTeamMembersInputSchema, manageTeamMembersTool };
|
|
@@ -489,6 +489,40 @@ var agentChatLinkTaskBodySchema = z.object({
|
|
|
489
489
|
publicTaskId: z.string().min(1),
|
|
490
490
|
toolCallId: z.string().min(1)
|
|
491
491
|
});
|
|
492
|
+
var AGENT_FILE_TAGS_MAX = 20;
|
|
493
|
+
var AGENT_FILE_TAG_MAX_LENGTH = 64;
|
|
494
|
+
function normalizeAgentFileTags(tags) {
|
|
495
|
+
if (!tags?.length) return void 0;
|
|
496
|
+
const seen = /* @__PURE__ */ new Set();
|
|
497
|
+
const out = [];
|
|
498
|
+
for (const raw of tags) {
|
|
499
|
+
const tag = raw.trim().toLowerCase().slice(0, AGENT_FILE_TAG_MAX_LENGTH);
|
|
500
|
+
if (!tag || seen.has(tag)) continue;
|
|
501
|
+
seen.add(tag);
|
|
502
|
+
out.push(tag);
|
|
503
|
+
if (out.length >= AGENT_FILE_TAGS_MAX) break;
|
|
504
|
+
}
|
|
505
|
+
return out.length > 0 ? out : void 0;
|
|
506
|
+
}
|
|
507
|
+
var agentChatUploadImageBodySchema = z.object({
|
|
508
|
+
mediaType: z.string().min(1),
|
|
509
|
+
/** Raw base64 (no data: URL prefix). */
|
|
510
|
+
base64: z.string().min(1),
|
|
511
|
+
chatId: z.string().min(1).optional(),
|
|
512
|
+
publicTaskId: z.string().min(1).optional(),
|
|
513
|
+
source: z.string().min(1).optional(),
|
|
514
|
+
/** Display / search name (e.g. `sunset-robot.png`). */
|
|
515
|
+
filename: z.string().min(1).max(255).optional(),
|
|
516
|
+
/** Human-readable description (e.g. generation prompt). */
|
|
517
|
+
description: z.string().min(1).max(2e3).optional(),
|
|
518
|
+
/**
|
|
519
|
+
* Optional labels for later grouping/filtering.
|
|
520
|
+
* Normalized to lowercase trimmed unique strings (max 20, 64 chars each).
|
|
521
|
+
*/
|
|
522
|
+
tags: z.array(z.string().min(1).max(AGENT_FILE_TAG_MAX_LENGTH)).max(AGENT_FILE_TAGS_MAX).optional().transform((tags) => normalizeAgentFileTags(tags))
|
|
523
|
+
}).refine((data) => Boolean(data.chatId || data.publicTaskId), {
|
|
524
|
+
message: "Provide chatId and/or publicTaskId"
|
|
525
|
+
});
|
|
492
526
|
|
|
493
527
|
// ../core/src/schemas/tool-result-display.ts
|
|
494
528
|
import { z as z2 } from "zod";
|
|
@@ -517,7 +551,8 @@ var tenantRoleSchema = z3.enum(["admin", "member"]);
|
|
|
517
551
|
var agentAdminUserSchema = z3.object({
|
|
518
552
|
id: z3.string(),
|
|
519
553
|
email: z3.string().email(),
|
|
520
|
-
name: z3.string()
|
|
554
|
+
name: z3.string(),
|
|
555
|
+
profilePictureUrl: z3.string().nullable().optional()
|
|
521
556
|
});
|
|
522
557
|
var agentAdminMemberSchema = z3.object({
|
|
523
558
|
userId: z3.string(),
|
|
@@ -602,6 +637,37 @@ var assignTasksBodySchema = z3.object({
|
|
|
602
637
|
{ message: "assignTo needs at least one user email or group slug." }
|
|
603
638
|
)
|
|
604
639
|
});
|
|
640
|
+
var agentAdminPlanLimitsSchema = z3.object({
|
|
641
|
+
tasksPerDay: z3.number(),
|
|
642
|
+
members: z3.number(),
|
|
643
|
+
apiKeys: z3.number(),
|
|
644
|
+
groups: z3.number(),
|
|
645
|
+
auditLogRetention: z3.number(),
|
|
646
|
+
rateLimitPerSecond: z3.number(),
|
|
647
|
+
taskRetentionDays: z3.number()
|
|
648
|
+
});
|
|
649
|
+
var agentAdminUsageSchema = z3.object({
|
|
650
|
+
workspace: z3.string(),
|
|
651
|
+
planName: z3.string(),
|
|
652
|
+
planType: z3.string(),
|
|
653
|
+
trialState: z3.enum(["none", "active", "expired"]),
|
|
654
|
+
daysRemaining: z3.number().nullable(),
|
|
655
|
+
isPaidPro: z3.boolean(),
|
|
656
|
+
subscriptionStatus: z3.string().nullable(),
|
|
657
|
+
tasksToday: z3.number(),
|
|
658
|
+
maxTasksPerDay: z3.number().nullable(),
|
|
659
|
+
tasksResetAt: z3.number(),
|
|
660
|
+
openTasks: z3.number(),
|
|
661
|
+
totalTasks: z3.number(),
|
|
662
|
+
seatsCurrent: z3.number(),
|
|
663
|
+
seatsMax: z3.number().nullable(),
|
|
664
|
+
groupsCurrent: z3.number(),
|
|
665
|
+
groupsMax: z3.number().nullable(),
|
|
666
|
+
apiKeysCurrent: z3.number(),
|
|
667
|
+
apiKeysMax: z3.number().nullable(),
|
|
668
|
+
rateLimitPerSecond: z3.number(),
|
|
669
|
+
limits: agentAdminPlanLimitsSchema
|
|
670
|
+
});
|
|
605
671
|
|
|
606
672
|
// ../core/src/handler-retry.ts
|
|
607
673
|
var HANDLER_RETRY_DELAYS_MS = [
|
|
@@ -697,7 +763,11 @@ function resolveRobotRockAuthConfig(overrides) {
|
|
|
697
763
|
"RobotRock auth is required. Set ROBOTROCK_API_KEY, ROBOTROCK_AGENT_SERVICE_TOKEN with tenant context, or pass auth when creating the client."
|
|
698
764
|
);
|
|
699
765
|
}
|
|
700
|
-
return {
|
|
766
|
+
return {
|
|
767
|
+
kind: "apiKey",
|
|
768
|
+
apiKey,
|
|
769
|
+
...overrides?.actingUserId?.trim() ? { actingUserId: overrides.actingUserId.trim() } : {}
|
|
770
|
+
};
|
|
701
771
|
}
|
|
702
772
|
|
|
703
773
|
// src/eve/agent/attributes.ts
|
|
@@ -833,6 +903,9 @@ async function agentAdminFetch(config, path, init) {
|
|
|
833
903
|
}
|
|
834
904
|
function createAgentAdminApi(config) {
|
|
835
905
|
return {
|
|
906
|
+
usage: {
|
|
907
|
+
get: () => agentAdminFetch(config, "/usage")
|
|
908
|
+
},
|
|
836
909
|
members: {
|
|
837
910
|
list: () => agentAdminFetch(config, "/members"),
|
|
838
911
|
get: (memberRef) => agentAdminFetch(config, `/members/${encodeURIComponent(memberRef)}`),
|
|
@@ -975,6 +1048,9 @@ function requireBoundAgentAdminClient(ctx) {
|
|
|
975
1048
|
return createBoundAgentAdminClient(ctx);
|
|
976
1049
|
}
|
|
977
1050
|
|
|
1051
|
+
// src/eve/entity-schemas.ts
|
|
1052
|
+
import { z as z5 } from "zod";
|
|
1053
|
+
|
|
978
1054
|
// src/eve/tool-ui-hint.ts
|
|
979
1055
|
var TOOL_UI_HINT_FIELD = "uiHint";
|
|
980
1056
|
function withUiHint(result, hint) {
|
|
@@ -984,6 +1060,212 @@ function withUiHint(result, hint) {
|
|
|
984
1060
|
};
|
|
985
1061
|
}
|
|
986
1062
|
|
|
1063
|
+
// src/eve/tool-result-ui-meta.ts
|
|
1064
|
+
var TOOL_UI_FIELD = "ui";
|
|
1065
|
+
var TOOL_RESULT_UI_ENTITY_ID_RE = /^[a-z][a-z0-9_]{0,63}$/;
|
|
1066
|
+
function withToolUi(result, ui) {
|
|
1067
|
+
const existing = typeof result[TOOL_UI_FIELD] === "object" && result[TOOL_UI_FIELD] !== null && !Array.isArray(result[TOOL_UI_FIELD]) ? result[TOOL_UI_FIELD] : {};
|
|
1068
|
+
return {
|
|
1069
|
+
...result,
|
|
1070
|
+
[TOOL_UI_FIELD]: {
|
|
1071
|
+
...existing,
|
|
1072
|
+
...ui
|
|
1073
|
+
}
|
|
1074
|
+
};
|
|
1075
|
+
}
|
|
1076
|
+
|
|
1077
|
+
// src/eve/entity-schemas.ts
|
|
1078
|
+
var toolResultUiMetaSchema = z5.object({
|
|
1079
|
+
present: z5.boolean().optional(),
|
|
1080
|
+
entity: z5.string().regex(TOOL_RESULT_UI_ENTITY_ID_RE).optional(),
|
|
1081
|
+
rowsPath: z5.string().min(1).optional(),
|
|
1082
|
+
layout: z5.enum(["list", "chart", "table"]).optional()
|
|
1083
|
+
}).strict();
|
|
1084
|
+
var agentOnlyFields = {
|
|
1085
|
+
replyGuidance: z5.string().optional(),
|
|
1086
|
+
ui: toolResultUiMetaSchema.optional(),
|
|
1087
|
+
uiHint: z5.enum(["list", "chart", "table"]).optional()
|
|
1088
|
+
};
|
|
1089
|
+
function withAgentOnlyFields(shape) {
|
|
1090
|
+
return z5.object({
|
|
1091
|
+
...shape,
|
|
1092
|
+
...agentOnlyFields
|
|
1093
|
+
});
|
|
1094
|
+
}
|
|
1095
|
+
var productEntityRowSchema = z5.object({
|
|
1096
|
+
id: z5.string().min(1),
|
|
1097
|
+
name: z5.string().min(1),
|
|
1098
|
+
price: z5.number(),
|
|
1099
|
+
currency: z5.string().min(1),
|
|
1100
|
+
inStock: z5.boolean(),
|
|
1101
|
+
url: z5.string().min(1)
|
|
1102
|
+
});
|
|
1103
|
+
var metricPointEntityRowSchema = z5.object({
|
|
1104
|
+
date: z5.string().optional().describe("X-axis value when xKey is date/time"),
|
|
1105
|
+
category: z5.string().optional().describe("X-axis value when xKey is category"),
|
|
1106
|
+
label: z5.string().optional().describe("X-axis value when xKey is label")
|
|
1107
|
+
}).catchall(z5.union([z5.string(), z5.number()])).describe(
|
|
1108
|
+
"Wide chart point: x-axis field + numeric columns named by yKeys (one series per column)"
|
|
1109
|
+
);
|
|
1110
|
+
var toolChartResultSchema = withAgentOnlyFields({
|
|
1111
|
+
title: z5.string().min(1).optional().describe("Chart title shown above the plot"),
|
|
1112
|
+
description: z5.string().min(1).optional().describe("Optional short subtitle"),
|
|
1113
|
+
type: z5.enum(["line", "bar", "area"]).describe("TRL/shadcn chart variant (time series \u2192 line, categories \u2192 bar)"),
|
|
1114
|
+
xKey: z5.string().min(1).describe('Field on each series row for the x-axis, e.g. "date" or "category"'),
|
|
1115
|
+
yKeys: z5.array(z5.string().min(1)).min(1).describe(
|
|
1116
|
+
'Numeric series column names on each row, e.g. ["NL","BE"] or ["created","handled"]'
|
|
1117
|
+
),
|
|
1118
|
+
series: z5.array(metricPointEntityRowSchema).describe(
|
|
1119
|
+
"Wide-format points only \u2014 one object per x value with yKeys as numeric fields"
|
|
1120
|
+
)
|
|
1121
|
+
});
|
|
1122
|
+
var memberEntityRowSchema = z5.object({
|
|
1123
|
+
name: z5.string(),
|
|
1124
|
+
email: z5.string(),
|
|
1125
|
+
role: z5.string(),
|
|
1126
|
+
membershipKind: z5.string(),
|
|
1127
|
+
profilePictureUrl: z5.string().nullable()
|
|
1128
|
+
});
|
|
1129
|
+
var taskEntityRowSchema = z5.object({
|
|
1130
|
+
id: z5.string().min(1),
|
|
1131
|
+
name: z5.string().min(1),
|
|
1132
|
+
status: z5.string().min(1),
|
|
1133
|
+
type: z5.string().nullable(),
|
|
1134
|
+
description: z5.string().nullable(),
|
|
1135
|
+
validUntil: z5.number(),
|
|
1136
|
+
createdAt: z5.number(),
|
|
1137
|
+
url: z5.string().min(1),
|
|
1138
|
+
threadPriority: z5.string().nullable().optional()
|
|
1139
|
+
});
|
|
1140
|
+
var groupEntityRowSchema = z5.object({
|
|
1141
|
+
name: z5.string().min(1),
|
|
1142
|
+
slug: z5.string().min(1),
|
|
1143
|
+
description: z5.string().nullable(),
|
|
1144
|
+
memberCount: z5.number().nullable(),
|
|
1145
|
+
url: z5.string().min(1)
|
|
1146
|
+
});
|
|
1147
|
+
var groupDetailEntitySchema = z5.object({
|
|
1148
|
+
name: z5.string().min(1),
|
|
1149
|
+
slug: z5.string().min(1),
|
|
1150
|
+
description: z5.string().nullable(),
|
|
1151
|
+
url: z5.string().min(1),
|
|
1152
|
+
members: z5.array(
|
|
1153
|
+
z5.object({
|
|
1154
|
+
name: z5.string(),
|
|
1155
|
+
email: z5.string(),
|
|
1156
|
+
profilePictureUrl: z5.string().nullable()
|
|
1157
|
+
})
|
|
1158
|
+
)
|
|
1159
|
+
});
|
|
1160
|
+
var statusEntityRowSchema = z5.object({
|
|
1161
|
+
id: z5.string().min(1),
|
|
1162
|
+
name: z5.string().min(1),
|
|
1163
|
+
status: z5.string().min(1),
|
|
1164
|
+
url: z5.string().min(1),
|
|
1165
|
+
type: z5.string().nullable().optional(),
|
|
1166
|
+
description: z5.string().nullable().optional()
|
|
1167
|
+
});
|
|
1168
|
+
var agentAdminErrorResultSchema = z5.object({
|
|
1169
|
+
ok: z5.literal(false),
|
|
1170
|
+
status: z5.number().optional(),
|
|
1171
|
+
message: z5.string(),
|
|
1172
|
+
response: z5.unknown().optional()
|
|
1173
|
+
});
|
|
1174
|
+
var agentAdminMutationResultSchema = z5.object({
|
|
1175
|
+
...agentOnlyFields
|
|
1176
|
+
}).passthrough();
|
|
1177
|
+
var searchProductsOutputSchema = withAgentOnlyFields({
|
|
1178
|
+
items: z5.array(productEntityRowSchema)
|
|
1179
|
+
});
|
|
1180
|
+
var generateRandomChartOutputSchema = toolChartResultSchema.extend({
|
|
1181
|
+
title: z5.string().min(1)
|
|
1182
|
+
});
|
|
1183
|
+
var generateImageOutputSchema = withAgentOnlyFields({
|
|
1184
|
+
prompt: z5.string().min(1),
|
|
1185
|
+
mediaType: z5.string().min(1),
|
|
1186
|
+
model: z5.string().min(1),
|
|
1187
|
+
storageId: z5.string().min(1),
|
|
1188
|
+
url: z5.string().min(1),
|
|
1189
|
+
/** @deprecated Legacy sessions only — prefer storageId/url. */
|
|
1190
|
+
base64: z5.string().min(1).optional()
|
|
1191
|
+
});
|
|
1192
|
+
var manageTeamMembersListOutputSchema = withAgentOnlyFields({
|
|
1193
|
+
members: z5.array(memberEntityRowSchema)
|
|
1194
|
+
});
|
|
1195
|
+
var manageTeamMembersDetailOutputSchema = withAgentOnlyFields(
|
|
1196
|
+
memberEntityRowSchema.shape
|
|
1197
|
+
);
|
|
1198
|
+
var manageTeamMembersOutputSchema = z5.union([
|
|
1199
|
+
manageTeamMembersListOutputSchema,
|
|
1200
|
+
manageTeamMembersDetailOutputSchema,
|
|
1201
|
+
agentAdminMutationResultSchema,
|
|
1202
|
+
agentAdminErrorResultSchema
|
|
1203
|
+
]);
|
|
1204
|
+
var manageGroupsListOutputSchema = withAgentOnlyFields({
|
|
1205
|
+
groups: z5.array(groupEntityRowSchema)
|
|
1206
|
+
});
|
|
1207
|
+
var manageGroupsDetailOutputSchema = withAgentOnlyFields(
|
|
1208
|
+
groupDetailEntitySchema.shape
|
|
1209
|
+
);
|
|
1210
|
+
var manageGroupsSummaryOutputSchema = withAgentOnlyFields(
|
|
1211
|
+
groupEntityRowSchema.shape
|
|
1212
|
+
);
|
|
1213
|
+
var manageGroupsOutputSchema = z5.union([
|
|
1214
|
+
manageGroupsListOutputSchema,
|
|
1215
|
+
manageGroupsDetailOutputSchema,
|
|
1216
|
+
manageGroupsSummaryOutputSchema,
|
|
1217
|
+
agentAdminMutationResultSchema,
|
|
1218
|
+
agentAdminErrorResultSchema
|
|
1219
|
+
]);
|
|
1220
|
+
var queryTasksListOutputSchema = withAgentOnlyFields({
|
|
1221
|
+
items: z5.array(taskEntityRowSchema),
|
|
1222
|
+
nextCursor: z5.string().nullable().optional()
|
|
1223
|
+
});
|
|
1224
|
+
var queryTasksDetailOutputSchema = withAgentOnlyFields({
|
|
1225
|
+
id: z5.string().nullable(),
|
|
1226
|
+
status: z5.string().nullable(),
|
|
1227
|
+
type: z5.string().nullable(),
|
|
1228
|
+
name: z5.string().nullable(),
|
|
1229
|
+
description: z5.string().nullable(),
|
|
1230
|
+
validUntil: z5.number().nullable(),
|
|
1231
|
+
createdAt: z5.number().nullable(),
|
|
1232
|
+
url: z5.string().min(1).nullable()
|
|
1233
|
+
});
|
|
1234
|
+
var queryTasksOutputSchema = z5.union([
|
|
1235
|
+
queryTasksListOutputSchema,
|
|
1236
|
+
queryTasksDetailOutputSchema,
|
|
1237
|
+
agentAdminErrorResultSchema
|
|
1238
|
+
]);
|
|
1239
|
+
var assignTasksOutputSchema = z5.union([
|
|
1240
|
+
withAgentOnlyFields({
|
|
1241
|
+
results: z5.array(statusEntityRowSchema)
|
|
1242
|
+
}),
|
|
1243
|
+
agentAdminErrorResultSchema
|
|
1244
|
+
]);
|
|
1245
|
+
var workspaceUsageEntitySchema = z5.object({
|
|
1246
|
+
workspace: z5.string(),
|
|
1247
|
+
plan: z5.string(),
|
|
1248
|
+
planType: z5.string(),
|
|
1249
|
+
trialState: z5.string(),
|
|
1250
|
+
daysRemaining: z5.number().nullable(),
|
|
1251
|
+
isPaidPro: z5.boolean(),
|
|
1252
|
+
subscriptionStatus: z5.string(),
|
|
1253
|
+
tasksToday: z5.string(),
|
|
1254
|
+
tasksResetAt: z5.string(),
|
|
1255
|
+
openTasks: z5.number(),
|
|
1256
|
+
totalTasks: z5.number(),
|
|
1257
|
+
seats: z5.string(),
|
|
1258
|
+
groups: z5.string(),
|
|
1259
|
+
apiKeys: z5.string(),
|
|
1260
|
+
rateLimitPerSecond: z5.number()
|
|
1261
|
+
});
|
|
1262
|
+
var getWorkspaceUsageOutputSchema = z5.union([
|
|
1263
|
+
withAgentOnlyFields({
|
|
1264
|
+
usage: workspaceUsageEntitySchema
|
|
1265
|
+
}),
|
|
1266
|
+
agentAdminErrorResultSchema
|
|
1267
|
+
]);
|
|
1268
|
+
|
|
987
1269
|
// src/eve/tool-reply-guidance.ts
|
|
988
1270
|
var TOOL_REPLY_GUIDANCE_FIELD = "replyGuidance";
|
|
989
1271
|
var MANAGE_TEAM_MEMBERS_LIST_REPLY_GUIDANCE = "Team members render as a list card in chat. Do not restate names, emails, or roles from the list. Only add context not shown (e.g. duplicates, next admin actions).";
|
|
@@ -998,15 +1280,31 @@ function withReplyGuidance(result, guidance) {
|
|
|
998
1280
|
|
|
999
1281
|
// src/eve/tool-display-format.ts
|
|
1000
1282
|
function formatToolObjectResult(data, options) {
|
|
1001
|
-
|
|
1283
|
+
let result = withReplyGuidance(
|
|
1284
|
+
data,
|
|
1285
|
+
options.replyGuidance
|
|
1286
|
+
);
|
|
1287
|
+
if (options.ui) {
|
|
1288
|
+
result = withToolUi(result, options.ui);
|
|
1289
|
+
}
|
|
1002
1290
|
if (options.uiHint) {
|
|
1003
|
-
|
|
1291
|
+
result = withUiHint(result, options.uiHint);
|
|
1004
1292
|
}
|
|
1005
|
-
return
|
|
1293
|
+
return result;
|
|
1006
1294
|
}
|
|
1007
1295
|
function formatToolListResult(listKey, items, options) {
|
|
1296
|
+
const ui = {
|
|
1297
|
+
...options.ui,
|
|
1298
|
+
layout: "list",
|
|
1299
|
+
rowsPath: listKey,
|
|
1300
|
+
...options.entity ? { entity: options.entity } : {},
|
|
1301
|
+
...options.present !== void 0 ? { present: options.present } : {}
|
|
1302
|
+
};
|
|
1008
1303
|
return withUiHint(
|
|
1009
|
-
|
|
1304
|
+
withToolUi(
|
|
1305
|
+
withReplyGuidance({ [listKey]: items }, options.replyGuidance),
|
|
1306
|
+
ui
|
|
1307
|
+
),
|
|
1010
1308
|
"list"
|
|
1011
1309
|
);
|
|
1012
1310
|
}
|
|
@@ -1017,7 +1315,8 @@ function serializeMemberRow(member) {
|
|
|
1017
1315
|
name: member.user.name,
|
|
1018
1316
|
email: member.user.email,
|
|
1019
1317
|
role: member.role,
|
|
1020
|
-
membershipKind: member.membershipKind
|
|
1318
|
+
membershipKind: member.membershipKind,
|
|
1319
|
+
profilePictureUrl: member.user.profilePictureUrl ?? null
|
|
1021
1320
|
};
|
|
1022
1321
|
}
|
|
1023
1322
|
function formatTeamMembersListResult(members) {
|
|
@@ -1025,29 +1324,31 @@ function formatTeamMembersListResult(members) {
|
|
|
1025
1324
|
"members",
|
|
1026
1325
|
members.map(serializeMemberRow),
|
|
1027
1326
|
{
|
|
1028
|
-
replyGuidance: MANAGE_TEAM_MEMBERS_LIST_REPLY_GUIDANCE
|
|
1327
|
+
replyGuidance: MANAGE_TEAM_MEMBERS_LIST_REPLY_GUIDANCE,
|
|
1328
|
+
entity: "member"
|
|
1029
1329
|
}
|
|
1030
1330
|
);
|
|
1031
1331
|
}
|
|
1032
1332
|
function formatTeamMemberDetailResult(member) {
|
|
1033
1333
|
return formatToolObjectResult(serializeMemberRow(member), {
|
|
1034
|
-
replyGuidance: MANAGE_TEAM_MEMBERS_DETAIL_REPLY_GUIDANCE
|
|
1334
|
+
replyGuidance: MANAGE_TEAM_MEMBERS_DETAIL_REPLY_GUIDANCE,
|
|
1335
|
+
ui: { entity: "member" }
|
|
1035
1336
|
});
|
|
1036
1337
|
}
|
|
1037
1338
|
|
|
1038
1339
|
// src/eve/tools/admin/manage-team-members.ts
|
|
1039
1340
|
import { defineTool } from "eve/tools";
|
|
1040
|
-
import { z as
|
|
1341
|
+
import { z as z6 } from "zod";
|
|
1041
1342
|
var MANAGE_TEAM_MEMBERS_TOOL_NAME = "manage_team_members";
|
|
1042
|
-
var manageTeamMembersInputSchema =
|
|
1043
|
-
action:
|
|
1044
|
-
userId:
|
|
1343
|
+
var manageTeamMembersInputSchema = z6.object({
|
|
1344
|
+
action: z6.enum(["list", "get", "invite", "update_role", "remove"]),
|
|
1345
|
+
userId: z6.string().min(1).optional().describe(
|
|
1045
1346
|
"Convex users table id for get, update_role, and remove. Prefer email when the member list only shows email."
|
|
1046
1347
|
),
|
|
1047
|
-
email:
|
|
1348
|
+
email: z6.string().email().optional().describe(
|
|
1048
1349
|
"Member email for get, update_role, and remove; invitee email for invite."
|
|
1049
1350
|
),
|
|
1050
|
-
role:
|
|
1351
|
+
role: z6.enum(["admin", "member"]).optional().describe("Role for invite and update_role.")
|
|
1051
1352
|
}).superRefine((input, ctx) => {
|
|
1052
1353
|
const requireField = (field, message) => {
|
|
1053
1354
|
if (!input[field]) {
|
|
@@ -1089,8 +1390,9 @@ function formatMemberMutationResult(payload) {
|
|
|
1089
1390
|
}
|
|
1090
1391
|
function defineManageTeamMembersTool() {
|
|
1091
1392
|
return defineTool({
|
|
1092
|
-
description: "Tenant-admin tool for workspace team members: list, get, invite, change role, or remove. Requires tenant admin access. Call get_my_access in the same turn before this tool to verify admin access (the check
|
|
1393
|
+
description: "Tenant-admin tool for workspace team members: list, get, invite, change role, or remove. Requires tenant admin access. Call get_my_access in the same turn before this tool to verify admin access (the check stays a compact success marker unless it is the only presentable result). Use member email from list results for get, update_role, and remove \u2014 internal ids are optional. Results render as chat UI cards \u2014 do not restate member names, emails, or roles in your reply.",
|
|
1093
1394
|
inputSchema: manageTeamMembersInputSchema,
|
|
1395
|
+
outputSchema: manageTeamMembersOutputSchema,
|
|
1094
1396
|
async execute(input, ctx) {
|
|
1095
1397
|
const api = requireBoundAgentAdminClient(ctx);
|
|
1096
1398
|
try {
|