robotrock 1.3.3 → 1.4.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 +32 -0
- 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 +128 -4
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/trigger.d.ts +3 -3
- package/dist/ai/trigger.js +128 -4
- package/dist/ai/trigger.js.map +1 -1
- package/dist/ai/workflow.d.ts +3 -3
- package/dist/ai/workflow.js +128 -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 -3
- package/dist/eve/agent/index.js +736 -414
- package/dist/eve/agent/index.js.map +1 -1
- package/dist/eve/index.d.ts +4 -3
- package/dist/eve/index.js +437 -45
- package/dist/eve/index.js.map +1 -1
- package/dist/eve/tools/admin/assign-tasks.d.ts +40 -8
- package/dist/eve/tools/admin/assign-tasks.js +328 -66
- 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 +1353 -0
- package/dist/eve/tools/admin/get-workspace-usage.js.map +1 -0
- package/dist/eve/tools/admin/manage-groups.d.ts +122 -8
- package/dist/eve/tools/admin/manage-groups.js +348 -94
- package/dist/eve/tools/admin/manage-groups.js.map +1 -1
- package/dist/eve/tools/admin/manage-team-members.d.ts +86 -8
- package/dist/eve/tools/admin/manage-team-members.js +318 -72
- package/dist/eve/tools/admin/manage-team-members.js.map +1 -1
- package/dist/eve/tools/admin/query-tasks.d.ts +82 -8
- package/dist/eve/tools/admin/query-tasks.js +360 -113
- 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 +2065 -0
- package/dist/eve/tools/catalog/generate-image.js.map +1 -0
- package/dist/eve/tools/catalog/generate-random-chart.d.ts +71 -0
- package/dist/eve/tools/catalog/generate-random-chart.js +372 -0
- package/dist/eve/tools/catalog/generate-random-chart.js.map +1 -0
- package/dist/eve/tools/catalog/search-products.d.ts +36 -44
- package/dist/eve/tools/catalog/search-products.js +237 -33
- package/dist/eve/tools/catalog/search-products.js.map +1 -1
- package/dist/eve/tools/identity/index.d.ts +2 -2
- package/dist/eve/tools/identity/index.js +35 -44
- package/dist/eve/tools/identity/index.js.map +1 -1
- package/dist/eve/tools/identity/my-access.d.ts +90 -6
- package/dist/eve/tools/identity/my-access.js +35 -44
- 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 +932 -288
- package/dist/eve/tools/index.js.map +1 -1
- package/dist/index-Drj0Rzf_.d.ts +905 -0
- package/dist/index.d.ts +5 -4
- package/dist/index.js +335 -20
- 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-DePyAbTI.d.ts +0 -203
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import * as eve_tools from 'eve/tools';
|
|
2
|
-
import { T as ToolResultWithReplyGuidance } from '../../../tool-reply-guidance-C3qrT1In.js';
|
|
3
|
-
import * as _robotrock_core from '@robotrock/core';
|
|
4
2
|
import { z } from 'zod';
|
|
5
3
|
|
|
6
4
|
declare const MANAGE_TEAM_MEMBERS_TOOL_NAME = "manage_team_members";
|
|
@@ -24,22 +22,102 @@ declare function defineManageTeamMembersTool(): eve_tools.ToolDefinition<{
|
|
|
24
22
|
userId?: string | undefined;
|
|
25
23
|
email?: string | undefined;
|
|
26
24
|
role?: "admin" | "member" | undefined;
|
|
27
|
-
},
|
|
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
|
+
} | {
|
|
28
56
|
ok: false;
|
|
29
|
-
status: number;
|
|
30
57
|
message: string;
|
|
31
|
-
|
|
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;
|
|
32
70
|
}>;
|
|
33
71
|
declare const manageTeamMembersTool: eve_tools.ToolDefinition<{
|
|
34
72
|
action: "list" | "get" | "invite" | "update_role" | "remove";
|
|
35
73
|
userId?: string | undefined;
|
|
36
74
|
email?: string | undefined;
|
|
37
75
|
role?: "admin" | "member" | undefined;
|
|
38
|
-
},
|
|
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
|
+
} | {
|
|
39
107
|
ok: false;
|
|
40
|
-
status: number;
|
|
41
108
|
message: string;
|
|
42
|
-
|
|
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;
|
|
43
121
|
}>;
|
|
44
122
|
|
|
45
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,20 +1048,212 @@ function requireBoundAgentAdminClient(ctx) {
|
|
|
975
1048
|
return createBoundAgentAdminClient(ctx);
|
|
976
1049
|
}
|
|
977
1050
|
|
|
978
|
-
// src/eve/
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
} : void 0;
|
|
1051
|
+
// src/eve/entity-schemas.ts
|
|
1052
|
+
import { z as z5 } from "zod";
|
|
1053
|
+
|
|
1054
|
+
// src/eve/tool-ui-hint.ts
|
|
1055
|
+
var TOOL_UI_HINT_FIELD = "uiHint";
|
|
1056
|
+
function withUiHint(result, hint) {
|
|
985
1057
|
return {
|
|
986
|
-
...
|
|
987
|
-
|
|
988
|
-
...options?.ui ? { ui: options.ui } : {}
|
|
1058
|
+
...result,
|
|
1059
|
+
[TOOL_UI_HINT_FIELD]: hint
|
|
989
1060
|
};
|
|
990
1061
|
}
|
|
991
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(),
|
|
1105
|
+
category: z5.string().optional(),
|
|
1106
|
+
label: z5.string().optional()
|
|
1107
|
+
}).catchall(z5.union([z5.string(), z5.number()]));
|
|
1108
|
+
var memberEntityRowSchema = z5.object({
|
|
1109
|
+
name: z5.string(),
|
|
1110
|
+
email: z5.string(),
|
|
1111
|
+
role: z5.string(),
|
|
1112
|
+
membershipKind: z5.string(),
|
|
1113
|
+
profilePictureUrl: z5.string().nullable()
|
|
1114
|
+
});
|
|
1115
|
+
var taskEntityRowSchema = z5.object({
|
|
1116
|
+
id: z5.string().min(1),
|
|
1117
|
+
name: z5.string().min(1),
|
|
1118
|
+
status: z5.string().min(1),
|
|
1119
|
+
type: z5.string().nullable(),
|
|
1120
|
+
description: z5.string().nullable(),
|
|
1121
|
+
validUntil: z5.number(),
|
|
1122
|
+
createdAt: z5.number(),
|
|
1123
|
+
url: z5.string().min(1),
|
|
1124
|
+
threadPriority: z5.string().nullable().optional()
|
|
1125
|
+
});
|
|
1126
|
+
var groupEntityRowSchema = z5.object({
|
|
1127
|
+
name: z5.string().min(1),
|
|
1128
|
+
slug: z5.string().min(1),
|
|
1129
|
+
description: z5.string().nullable(),
|
|
1130
|
+
memberCount: z5.number().nullable(),
|
|
1131
|
+
url: z5.string().min(1)
|
|
1132
|
+
});
|
|
1133
|
+
var groupDetailEntitySchema = z5.object({
|
|
1134
|
+
name: z5.string().min(1),
|
|
1135
|
+
slug: z5.string().min(1),
|
|
1136
|
+
description: z5.string().nullable(),
|
|
1137
|
+
url: z5.string().min(1),
|
|
1138
|
+
members: z5.array(
|
|
1139
|
+
z5.object({
|
|
1140
|
+
name: z5.string(),
|
|
1141
|
+
email: z5.string(),
|
|
1142
|
+
profilePictureUrl: z5.string().nullable()
|
|
1143
|
+
})
|
|
1144
|
+
)
|
|
1145
|
+
});
|
|
1146
|
+
var statusEntityRowSchema = z5.object({
|
|
1147
|
+
id: z5.string().min(1),
|
|
1148
|
+
name: z5.string().min(1),
|
|
1149
|
+
status: z5.string().min(1),
|
|
1150
|
+
url: z5.string().min(1),
|
|
1151
|
+
type: z5.string().nullable().optional(),
|
|
1152
|
+
description: z5.string().nullable().optional()
|
|
1153
|
+
});
|
|
1154
|
+
var agentAdminErrorResultSchema = z5.object({
|
|
1155
|
+
ok: z5.literal(false),
|
|
1156
|
+
status: z5.number().optional(),
|
|
1157
|
+
message: z5.string(),
|
|
1158
|
+
response: z5.unknown().optional()
|
|
1159
|
+
});
|
|
1160
|
+
var agentAdminMutationResultSchema = z5.object({
|
|
1161
|
+
...agentOnlyFields
|
|
1162
|
+
}).passthrough();
|
|
1163
|
+
var searchProductsOutputSchema = withAgentOnlyFields({
|
|
1164
|
+
items: z5.array(productEntityRowSchema)
|
|
1165
|
+
});
|
|
1166
|
+
var generateRandomChartOutputSchema = withAgentOnlyFields({
|
|
1167
|
+
title: z5.string().min(1),
|
|
1168
|
+
axis: z5.enum(["time", "category"]),
|
|
1169
|
+
series: z5.array(metricPointEntityRowSchema)
|
|
1170
|
+
});
|
|
1171
|
+
var generateImageOutputSchema = withAgentOnlyFields({
|
|
1172
|
+
prompt: z5.string().min(1),
|
|
1173
|
+
mediaType: z5.string().min(1),
|
|
1174
|
+
model: z5.string().min(1),
|
|
1175
|
+
storageId: z5.string().min(1),
|
|
1176
|
+
url: z5.string().min(1),
|
|
1177
|
+
/** @deprecated Legacy sessions only — prefer storageId/url. */
|
|
1178
|
+
base64: z5.string().min(1).optional()
|
|
1179
|
+
});
|
|
1180
|
+
var manageTeamMembersListOutputSchema = withAgentOnlyFields({
|
|
1181
|
+
members: z5.array(memberEntityRowSchema)
|
|
1182
|
+
});
|
|
1183
|
+
var manageTeamMembersDetailOutputSchema = withAgentOnlyFields(
|
|
1184
|
+
memberEntityRowSchema.shape
|
|
1185
|
+
);
|
|
1186
|
+
var manageTeamMembersOutputSchema = z5.union([
|
|
1187
|
+
manageTeamMembersListOutputSchema,
|
|
1188
|
+
manageTeamMembersDetailOutputSchema,
|
|
1189
|
+
agentAdminMutationResultSchema,
|
|
1190
|
+
agentAdminErrorResultSchema
|
|
1191
|
+
]);
|
|
1192
|
+
var manageGroupsListOutputSchema = withAgentOnlyFields({
|
|
1193
|
+
groups: z5.array(groupEntityRowSchema)
|
|
1194
|
+
});
|
|
1195
|
+
var manageGroupsDetailOutputSchema = withAgentOnlyFields(
|
|
1196
|
+
groupDetailEntitySchema.shape
|
|
1197
|
+
);
|
|
1198
|
+
var manageGroupsSummaryOutputSchema = withAgentOnlyFields(
|
|
1199
|
+
groupEntityRowSchema.shape
|
|
1200
|
+
);
|
|
1201
|
+
var manageGroupsOutputSchema = z5.union([
|
|
1202
|
+
manageGroupsListOutputSchema,
|
|
1203
|
+
manageGroupsDetailOutputSchema,
|
|
1204
|
+
manageGroupsSummaryOutputSchema,
|
|
1205
|
+
agentAdminMutationResultSchema,
|
|
1206
|
+
agentAdminErrorResultSchema
|
|
1207
|
+
]);
|
|
1208
|
+
var queryTasksListOutputSchema = withAgentOnlyFields({
|
|
1209
|
+
items: z5.array(taskEntityRowSchema),
|
|
1210
|
+
nextCursor: z5.string().nullable().optional()
|
|
1211
|
+
});
|
|
1212
|
+
var queryTasksDetailOutputSchema = withAgentOnlyFields({
|
|
1213
|
+
id: z5.string().nullable(),
|
|
1214
|
+
status: z5.string().nullable(),
|
|
1215
|
+
type: z5.string().nullable(),
|
|
1216
|
+
name: z5.string().nullable(),
|
|
1217
|
+
description: z5.string().nullable(),
|
|
1218
|
+
validUntil: z5.number().nullable(),
|
|
1219
|
+
createdAt: z5.number().nullable(),
|
|
1220
|
+
url: z5.string().min(1).nullable()
|
|
1221
|
+
});
|
|
1222
|
+
var queryTasksOutputSchema = z5.union([
|
|
1223
|
+
queryTasksListOutputSchema,
|
|
1224
|
+
queryTasksDetailOutputSchema,
|
|
1225
|
+
agentAdminErrorResultSchema
|
|
1226
|
+
]);
|
|
1227
|
+
var assignTasksOutputSchema = z5.union([
|
|
1228
|
+
withAgentOnlyFields({
|
|
1229
|
+
results: z5.array(statusEntityRowSchema)
|
|
1230
|
+
}),
|
|
1231
|
+
agentAdminErrorResultSchema
|
|
1232
|
+
]);
|
|
1233
|
+
var workspaceUsageEntitySchema = z5.object({
|
|
1234
|
+
workspace: z5.string(),
|
|
1235
|
+
plan: z5.string(),
|
|
1236
|
+
planType: z5.string(),
|
|
1237
|
+
trialState: z5.string(),
|
|
1238
|
+
daysRemaining: z5.number().nullable(),
|
|
1239
|
+
isPaidPro: z5.boolean(),
|
|
1240
|
+
subscriptionStatus: z5.string(),
|
|
1241
|
+
tasksToday: z5.string(),
|
|
1242
|
+
tasksResetAt: z5.string(),
|
|
1243
|
+
openTasks: z5.number(),
|
|
1244
|
+
totalTasks: z5.number(),
|
|
1245
|
+
seats: z5.string(),
|
|
1246
|
+
groups: z5.string(),
|
|
1247
|
+
apiKeys: z5.string(),
|
|
1248
|
+
rateLimitPerSecond: z5.number()
|
|
1249
|
+
});
|
|
1250
|
+
var getWorkspaceUsageOutputSchema = z5.union([
|
|
1251
|
+
withAgentOnlyFields({
|
|
1252
|
+
usage: workspaceUsageEntitySchema
|
|
1253
|
+
}),
|
|
1254
|
+
agentAdminErrorResultSchema
|
|
1255
|
+
]);
|
|
1256
|
+
|
|
992
1257
|
// src/eve/tool-reply-guidance.ts
|
|
993
1258
|
var TOOL_REPLY_GUIDANCE_FIELD = "replyGuidance";
|
|
994
1259
|
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).";
|
|
@@ -1003,86 +1268,75 @@ function withReplyGuidance(result, guidance) {
|
|
|
1003
1268
|
|
|
1004
1269
|
// src/eve/tool-display-format.ts
|
|
1005
1270
|
function formatToolObjectResult(data, options) {
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
title: options.title,
|
|
1009
|
-
description: options.description,
|
|
1010
|
-
ui: options.ui
|
|
1011
|
-
}),
|
|
1271
|
+
let result = withReplyGuidance(
|
|
1272
|
+
data,
|
|
1012
1273
|
options.replyGuidance
|
|
1013
1274
|
);
|
|
1275
|
+
if (options.ui) {
|
|
1276
|
+
result = withToolUi(result, options.ui);
|
|
1277
|
+
}
|
|
1278
|
+
if (options.uiHint) {
|
|
1279
|
+
result = withUiHint(result, options.uiHint);
|
|
1280
|
+
}
|
|
1281
|
+
return result;
|
|
1014
1282
|
}
|
|
1015
1283
|
function formatToolListResult(listKey, items, options) {
|
|
1016
|
-
const
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
}
|
|
1022
|
-
} : {
|
|
1023
|
-
"ui:widget": "table",
|
|
1024
|
-
...options.itemUi ? { items: options.itemUi } : {}
|
|
1284
|
+
const ui = {
|
|
1285
|
+
...options.ui,
|
|
1286
|
+
layout: "list",
|
|
1287
|
+
rowsPath: listKey,
|
|
1288
|
+
...options.entity ? { entity: options.entity } : {},
|
|
1289
|
+
...options.present !== void 0 ? { present: options.present } : {}
|
|
1025
1290
|
};
|
|
1026
|
-
return
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
},
|
|
1033
|
-
replyGuidance: options.replyGuidance
|
|
1034
|
-
}
|
|
1291
|
+
return withUiHint(
|
|
1292
|
+
withToolUi(
|
|
1293
|
+
withReplyGuidance({ [listKey]: items }, options.replyGuidance),
|
|
1294
|
+
ui
|
|
1295
|
+
),
|
|
1296
|
+
"list"
|
|
1035
1297
|
);
|
|
1036
1298
|
}
|
|
1037
1299
|
|
|
1038
1300
|
// src/eve/tools/admin/format-team-members-list.ts
|
|
1039
|
-
var MEMBER_DETAIL_UI = {
|
|
1040
|
-
name: { "ui:title": "Name" },
|
|
1041
|
-
email: { "ui:title": "Email" },
|
|
1042
|
-
role: { "ui:title": "Role" },
|
|
1043
|
-
membershipKind: { "ui:title": "Membership" }
|
|
1044
|
-
};
|
|
1045
1301
|
function serializeMemberRow(member) {
|
|
1046
1302
|
return {
|
|
1047
1303
|
name: member.user.name,
|
|
1048
1304
|
email: member.user.email,
|
|
1049
1305
|
role: member.role,
|
|
1050
|
-
membershipKind: member.membershipKind
|
|
1306
|
+
membershipKind: member.membershipKind,
|
|
1307
|
+
profilePictureUrl: member.user.profilePictureUrl ?? null
|
|
1051
1308
|
};
|
|
1052
1309
|
}
|
|
1053
1310
|
function formatTeamMembersListResult(members) {
|
|
1054
|
-
const countLabel = members.length === 1 ? "1 team member" : `${members.length} team members`;
|
|
1055
1311
|
return formatToolListResult(
|
|
1056
1312
|
"members",
|
|
1057
1313
|
members.map(serializeMemberRow),
|
|
1058
1314
|
{
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
replyGuidance: MANAGE_TEAM_MEMBERS_LIST_REPLY_GUIDANCE
|
|
1315
|
+
replyGuidance: MANAGE_TEAM_MEMBERS_LIST_REPLY_GUIDANCE,
|
|
1316
|
+
entity: "member"
|
|
1062
1317
|
}
|
|
1063
1318
|
);
|
|
1064
1319
|
}
|
|
1065
|
-
function formatTeamMemberDetailResult(member
|
|
1320
|
+
function formatTeamMemberDetailResult(member) {
|
|
1066
1321
|
return formatToolObjectResult(serializeMemberRow(member), {
|
|
1067
|
-
|
|
1068
|
-
ui:
|
|
1069
|
-
replyGuidance: MANAGE_TEAM_MEMBERS_DETAIL_REPLY_GUIDANCE
|
|
1322
|
+
replyGuidance: MANAGE_TEAM_MEMBERS_DETAIL_REPLY_GUIDANCE,
|
|
1323
|
+
ui: { entity: "member" }
|
|
1070
1324
|
});
|
|
1071
1325
|
}
|
|
1072
1326
|
|
|
1073
1327
|
// src/eve/tools/admin/manage-team-members.ts
|
|
1074
1328
|
import { defineTool } from "eve/tools";
|
|
1075
|
-
import { z as
|
|
1329
|
+
import { z as z6 } from "zod";
|
|
1076
1330
|
var MANAGE_TEAM_MEMBERS_TOOL_NAME = "manage_team_members";
|
|
1077
|
-
var manageTeamMembersInputSchema =
|
|
1078
|
-
action:
|
|
1079
|
-
userId:
|
|
1331
|
+
var manageTeamMembersInputSchema = z6.object({
|
|
1332
|
+
action: z6.enum(["list", "get", "invite", "update_role", "remove"]),
|
|
1333
|
+
userId: z6.string().min(1).optional().describe(
|
|
1080
1334
|
"Convex users table id for get, update_role, and remove. Prefer email when the member list only shows email."
|
|
1081
1335
|
),
|
|
1082
|
-
email:
|
|
1336
|
+
email: z6.string().email().optional().describe(
|
|
1083
1337
|
"Member email for get, update_role, and remove; invitee email for invite."
|
|
1084
1338
|
),
|
|
1085
|
-
role:
|
|
1339
|
+
role: z6.enum(["admin", "member"]).optional().describe("Role for invite and update_role.")
|
|
1086
1340
|
}).superRefine((input, ctx) => {
|
|
1087
1341
|
const requireField = (field, message) => {
|
|
1088
1342
|
if (!input[field]) {
|
|
@@ -1117,20 +1371,16 @@ var manageTeamMembersInputSchema = z5.object({
|
|
|
1117
1371
|
function resolveMemberRef(input) {
|
|
1118
1372
|
return input.userId ?? input.email;
|
|
1119
1373
|
}
|
|
1120
|
-
function formatMemberMutationResult(payload
|
|
1374
|
+
function formatMemberMutationResult(payload) {
|
|
1121
1375
|
return formatToolObjectResult(payload, {
|
|
1122
|
-
title,
|
|
1123
|
-
ui: {
|
|
1124
|
-
success: { "ui:title": "Success", "ui:widget": "boolean" },
|
|
1125
|
-
promoted: { "ui:title": "Promoted existing user", "ui:widget": "boolean" }
|
|
1126
|
-
},
|
|
1127
1376
|
replyGuidance: ADMIN_MUTATION_REPLY_GUIDANCE
|
|
1128
1377
|
});
|
|
1129
1378
|
}
|
|
1130
1379
|
function defineManageTeamMembersTool() {
|
|
1131
1380
|
return defineTool({
|
|
1132
|
-
description: "Tenant-admin tool for workspace team members: list, get, invite, change role, or remove. Requires tenant admin access. 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.",
|
|
1381
|
+
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.",
|
|
1133
1382
|
inputSchema: manageTeamMembersInputSchema,
|
|
1383
|
+
outputSchema: manageTeamMembersOutputSchema,
|
|
1134
1384
|
async execute(input, ctx) {
|
|
1135
1385
|
const api = requireBoundAgentAdminClient(ctx);
|
|
1136
1386
|
try {
|
|
@@ -1152,13 +1402,11 @@ function defineManageTeamMembersTool() {
|
|
|
1152
1402
|
});
|
|
1153
1403
|
if (result.member) {
|
|
1154
1404
|
return formatTeamMemberDetailResult(
|
|
1155
|
-
result.member
|
|
1156
|
-
{ title: "Member invited" }
|
|
1405
|
+
result.member
|
|
1157
1406
|
);
|
|
1158
1407
|
}
|
|
1159
1408
|
return formatMemberMutationResult(
|
|
1160
|
-
result
|
|
1161
|
-
"Invitation sent"
|
|
1409
|
+
result
|
|
1162
1410
|
);
|
|
1163
1411
|
}
|
|
1164
1412
|
case "update_role": {
|
|
@@ -1167,16 +1415,14 @@ function defineManageTeamMembersTool() {
|
|
|
1167
1415
|
input.role
|
|
1168
1416
|
);
|
|
1169
1417
|
return formatMemberMutationResult(
|
|
1170
|
-
result
|
|
1171
|
-
"Member role updated"
|
|
1418
|
+
result
|
|
1172
1419
|
);
|
|
1173
1420
|
}
|
|
1174
1421
|
case "remove": {
|
|
1175
1422
|
const memberId = resolveMemberRef(input);
|
|
1176
1423
|
const result = await api.members.remove(memberId);
|
|
1177
1424
|
return formatMemberMutationResult(
|
|
1178
|
-
result
|
|
1179
|
-
"Member removed"
|
|
1425
|
+
result
|
|
1180
1426
|
);
|
|
1181
1427
|
}
|
|
1182
1428
|
}
|