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
|
@@ -442,6 +442,40 @@ var agentChatLinkTaskBodySchema = z.object({
|
|
|
442
442
|
publicTaskId: z.string().min(1),
|
|
443
443
|
toolCallId: z.string().min(1)
|
|
444
444
|
});
|
|
445
|
+
var AGENT_FILE_TAGS_MAX = 20;
|
|
446
|
+
var AGENT_FILE_TAG_MAX_LENGTH = 64;
|
|
447
|
+
function normalizeAgentFileTags(tags) {
|
|
448
|
+
if (!tags?.length) return void 0;
|
|
449
|
+
const seen = /* @__PURE__ */ new Set();
|
|
450
|
+
const out = [];
|
|
451
|
+
for (const raw of tags) {
|
|
452
|
+
const tag = raw.trim().toLowerCase().slice(0, AGENT_FILE_TAG_MAX_LENGTH);
|
|
453
|
+
if (!tag || seen.has(tag)) continue;
|
|
454
|
+
seen.add(tag);
|
|
455
|
+
out.push(tag);
|
|
456
|
+
if (out.length >= AGENT_FILE_TAGS_MAX) break;
|
|
457
|
+
}
|
|
458
|
+
return out.length > 0 ? out : void 0;
|
|
459
|
+
}
|
|
460
|
+
var agentChatUploadImageBodySchema = z.object({
|
|
461
|
+
mediaType: z.string().min(1),
|
|
462
|
+
/** Raw base64 (no data: URL prefix). */
|
|
463
|
+
base64: z.string().min(1),
|
|
464
|
+
chatId: z.string().min(1).optional(),
|
|
465
|
+
publicTaskId: z.string().min(1).optional(),
|
|
466
|
+
source: z.string().min(1).optional(),
|
|
467
|
+
/** Display / search name (e.g. `sunset-robot.png`). */
|
|
468
|
+
filename: z.string().min(1).max(255).optional(),
|
|
469
|
+
/** Human-readable description (e.g. generation prompt). */
|
|
470
|
+
description: z.string().min(1).max(2e3).optional(),
|
|
471
|
+
/**
|
|
472
|
+
* Optional labels for later grouping/filtering.
|
|
473
|
+
* Normalized to lowercase trimmed unique strings (max 20, 64 chars each).
|
|
474
|
+
*/
|
|
475
|
+
tags: z.array(z.string().min(1).max(AGENT_FILE_TAG_MAX_LENGTH)).max(AGENT_FILE_TAGS_MAX).optional().transform((tags) => normalizeAgentFileTags(tags))
|
|
476
|
+
}).refine((data) => Boolean(data.chatId || data.publicTaskId), {
|
|
477
|
+
message: "Provide chatId and/or publicTaskId"
|
|
478
|
+
});
|
|
445
479
|
|
|
446
480
|
// ../core/src/schemas/tool-result-display.ts
|
|
447
481
|
import { z as z2 } from "zod";
|
|
@@ -470,7 +504,8 @@ var tenantRoleSchema = z3.enum(["admin", "member"]);
|
|
|
470
504
|
var agentAdminUserSchema = z3.object({
|
|
471
505
|
id: z3.string(),
|
|
472
506
|
email: z3.string().email(),
|
|
473
|
-
name: z3.string()
|
|
507
|
+
name: z3.string(),
|
|
508
|
+
profilePictureUrl: z3.string().nullable().optional()
|
|
474
509
|
});
|
|
475
510
|
var agentAdminMemberSchema = z3.object({
|
|
476
511
|
userId: z3.string(),
|
|
@@ -555,10 +590,41 @@ var assignTasksBodySchema = z3.object({
|
|
|
555
590
|
{ message: "assignTo needs at least one user email or group slug." }
|
|
556
591
|
)
|
|
557
592
|
});
|
|
593
|
+
var agentAdminPlanLimitsSchema = z3.object({
|
|
594
|
+
tasksPerDay: z3.number(),
|
|
595
|
+
members: z3.number(),
|
|
596
|
+
apiKeys: z3.number(),
|
|
597
|
+
groups: z3.number(),
|
|
598
|
+
auditLogRetention: z3.number(),
|
|
599
|
+
rateLimitPerSecond: z3.number(),
|
|
600
|
+
taskRetentionDays: z3.number()
|
|
601
|
+
});
|
|
602
|
+
var agentAdminUsageSchema = z3.object({
|
|
603
|
+
workspace: z3.string(),
|
|
604
|
+
planName: z3.string(),
|
|
605
|
+
planType: z3.string(),
|
|
606
|
+
trialState: z3.enum(["none", "active", "expired"]),
|
|
607
|
+
daysRemaining: z3.number().nullable(),
|
|
608
|
+
isPaidPro: z3.boolean(),
|
|
609
|
+
subscriptionStatus: z3.string().nullable(),
|
|
610
|
+
tasksToday: z3.number(),
|
|
611
|
+
maxTasksPerDay: z3.number().nullable(),
|
|
612
|
+
tasksResetAt: z3.number(),
|
|
613
|
+
openTasks: z3.number(),
|
|
614
|
+
totalTasks: z3.number(),
|
|
615
|
+
seatsCurrent: z3.number(),
|
|
616
|
+
seatsMax: z3.number().nullable(),
|
|
617
|
+
groupsCurrent: z3.number(),
|
|
618
|
+
groupsMax: z3.number().nullable(),
|
|
619
|
+
apiKeysCurrent: z3.number(),
|
|
620
|
+
apiKeysMax: z3.number().nullable(),
|
|
621
|
+
rateLimitPerSecond: z3.number(),
|
|
622
|
+
limits: agentAdminPlanLimitsSchema
|
|
623
|
+
});
|
|
558
624
|
|
|
559
625
|
// src/eve/tools/admin/assign-tasks.ts
|
|
560
626
|
import { defineTool } from "eve/tools";
|
|
561
|
-
import { z as
|
|
627
|
+
import { z as z6 } from "zod";
|
|
562
628
|
|
|
563
629
|
// ../core/src/handler-retry.ts
|
|
564
630
|
var HANDLER_RETRY_DELAYS_MS = [
|
|
@@ -654,7 +720,11 @@ function resolveRobotRockAuthConfig(overrides) {
|
|
|
654
720
|
"RobotRock auth is required. Set ROBOTROCK_API_KEY, ROBOTROCK_AGENT_SERVICE_TOKEN with tenant context, or pass auth when creating the client."
|
|
655
721
|
);
|
|
656
722
|
}
|
|
657
|
-
return {
|
|
723
|
+
return {
|
|
724
|
+
kind: "apiKey",
|
|
725
|
+
apiKey,
|
|
726
|
+
...overrides?.actingUserId?.trim() ? { actingUserId: overrides.actingUserId.trim() } : {}
|
|
727
|
+
};
|
|
658
728
|
}
|
|
659
729
|
|
|
660
730
|
// src/http.ts
|
|
@@ -830,6 +900,9 @@ async function agentAdminFetch(config, path, init) {
|
|
|
830
900
|
}
|
|
831
901
|
function createAgentAdminApi(config) {
|
|
832
902
|
return {
|
|
903
|
+
usage: {
|
|
904
|
+
get: () => agentAdminFetch(config, "/usage")
|
|
905
|
+
},
|
|
833
906
|
members: {
|
|
834
907
|
list: () => agentAdminFetch(config, "/members"),
|
|
835
908
|
get: (memberRef) => agentAdminFetch(config, `/members/${encodeURIComponent(memberRef)}`),
|
|
@@ -968,20 +1041,223 @@ function createBoundAgentAdminClient(ctx) {
|
|
|
968
1041
|
);
|
|
969
1042
|
}
|
|
970
1043
|
|
|
971
|
-
// src/eve/
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
1044
|
+
// src/eve/entity-schemas.ts
|
|
1045
|
+
import { z as z5 } from "zod";
|
|
1046
|
+
|
|
1047
|
+
// src/eve/tool-ui-hint.ts
|
|
1048
|
+
var TOOL_UI_HINT_FIELD = "uiHint";
|
|
1049
|
+
function withUiHint(result, hint) {
|
|
1050
|
+
return {
|
|
1051
|
+
...result,
|
|
1052
|
+
[TOOL_UI_HINT_FIELD]: hint
|
|
1053
|
+
};
|
|
1054
|
+
}
|
|
1055
|
+
|
|
1056
|
+
// src/eve/tool-result-ui-meta.ts
|
|
1057
|
+
var TOOL_UI_FIELD = "ui";
|
|
1058
|
+
var TOOL_RESULT_UI_ENTITY_ID_RE = /^[a-z][a-z0-9_]{0,63}$/;
|
|
1059
|
+
function withToolUi(result, ui) {
|
|
1060
|
+
const existing = typeof result[TOOL_UI_FIELD] === "object" && result[TOOL_UI_FIELD] !== null && !Array.isArray(result[TOOL_UI_FIELD]) ? result[TOOL_UI_FIELD] : {};
|
|
978
1061
|
return {
|
|
979
|
-
...
|
|
980
|
-
|
|
981
|
-
|
|
1062
|
+
...result,
|
|
1063
|
+
[TOOL_UI_FIELD]: {
|
|
1064
|
+
...existing,
|
|
1065
|
+
...ui
|
|
1066
|
+
}
|
|
982
1067
|
};
|
|
983
1068
|
}
|
|
984
1069
|
|
|
1070
|
+
// src/eve/entity-schemas.ts
|
|
1071
|
+
function buildTenantTaskUrl(tenantSlug, task) {
|
|
1072
|
+
const q = new URLSearchParams();
|
|
1073
|
+
if (task.app && task.app !== "default") {
|
|
1074
|
+
q.set("app", task.app);
|
|
1075
|
+
}
|
|
1076
|
+
if (task.type?.trim()) {
|
|
1077
|
+
q.set("type", task.type.trim());
|
|
1078
|
+
}
|
|
1079
|
+
q.set("selected", task.id);
|
|
1080
|
+
return `/${tenantSlug}/inbox?${q.toString()}`;
|
|
1081
|
+
}
|
|
1082
|
+
var toolResultUiMetaSchema = z5.object({
|
|
1083
|
+
present: z5.boolean().optional(),
|
|
1084
|
+
entity: z5.string().regex(TOOL_RESULT_UI_ENTITY_ID_RE).optional(),
|
|
1085
|
+
rowsPath: z5.string().min(1).optional(),
|
|
1086
|
+
layout: z5.enum(["list", "chart", "table"]).optional()
|
|
1087
|
+
}).strict();
|
|
1088
|
+
var agentOnlyFields = {
|
|
1089
|
+
replyGuidance: z5.string().optional(),
|
|
1090
|
+
ui: toolResultUiMetaSchema.optional(),
|
|
1091
|
+
uiHint: z5.enum(["list", "chart", "table"]).optional()
|
|
1092
|
+
};
|
|
1093
|
+
function withAgentOnlyFields(shape) {
|
|
1094
|
+
return z5.object({
|
|
1095
|
+
...shape,
|
|
1096
|
+
...agentOnlyFields
|
|
1097
|
+
});
|
|
1098
|
+
}
|
|
1099
|
+
var productEntityRowSchema = z5.object({
|
|
1100
|
+
id: z5.string().min(1),
|
|
1101
|
+
name: z5.string().min(1),
|
|
1102
|
+
price: z5.number(),
|
|
1103
|
+
currency: z5.string().min(1),
|
|
1104
|
+
inStock: z5.boolean(),
|
|
1105
|
+
url: z5.string().min(1)
|
|
1106
|
+
});
|
|
1107
|
+
var metricPointEntityRowSchema = z5.object({
|
|
1108
|
+
date: z5.string().optional(),
|
|
1109
|
+
category: z5.string().optional(),
|
|
1110
|
+
label: z5.string().optional()
|
|
1111
|
+
}).catchall(z5.union([z5.string(), z5.number()]));
|
|
1112
|
+
var memberEntityRowSchema = z5.object({
|
|
1113
|
+
name: z5.string(),
|
|
1114
|
+
email: z5.string(),
|
|
1115
|
+
role: z5.string(),
|
|
1116
|
+
membershipKind: z5.string(),
|
|
1117
|
+
profilePictureUrl: z5.string().nullable()
|
|
1118
|
+
});
|
|
1119
|
+
var taskEntityRowSchema = z5.object({
|
|
1120
|
+
id: z5.string().min(1),
|
|
1121
|
+
name: z5.string().min(1),
|
|
1122
|
+
status: z5.string().min(1),
|
|
1123
|
+
type: z5.string().nullable(),
|
|
1124
|
+
description: z5.string().nullable(),
|
|
1125
|
+
validUntil: z5.number(),
|
|
1126
|
+
createdAt: z5.number(),
|
|
1127
|
+
url: z5.string().min(1),
|
|
1128
|
+
threadPriority: z5.string().nullable().optional()
|
|
1129
|
+
});
|
|
1130
|
+
var groupEntityRowSchema = z5.object({
|
|
1131
|
+
name: z5.string().min(1),
|
|
1132
|
+
slug: z5.string().min(1),
|
|
1133
|
+
description: z5.string().nullable(),
|
|
1134
|
+
memberCount: z5.number().nullable(),
|
|
1135
|
+
url: z5.string().min(1)
|
|
1136
|
+
});
|
|
1137
|
+
var groupDetailEntitySchema = z5.object({
|
|
1138
|
+
name: z5.string().min(1),
|
|
1139
|
+
slug: z5.string().min(1),
|
|
1140
|
+
description: z5.string().nullable(),
|
|
1141
|
+
url: z5.string().min(1),
|
|
1142
|
+
members: z5.array(
|
|
1143
|
+
z5.object({
|
|
1144
|
+
name: z5.string(),
|
|
1145
|
+
email: z5.string(),
|
|
1146
|
+
profilePictureUrl: z5.string().nullable()
|
|
1147
|
+
})
|
|
1148
|
+
)
|
|
1149
|
+
});
|
|
1150
|
+
var statusEntityRowSchema = z5.object({
|
|
1151
|
+
id: z5.string().min(1),
|
|
1152
|
+
name: z5.string().min(1),
|
|
1153
|
+
status: z5.string().min(1),
|
|
1154
|
+
url: z5.string().min(1),
|
|
1155
|
+
type: z5.string().nullable().optional(),
|
|
1156
|
+
description: z5.string().nullable().optional()
|
|
1157
|
+
});
|
|
1158
|
+
var agentAdminErrorResultSchema = z5.object({
|
|
1159
|
+
ok: z5.literal(false),
|
|
1160
|
+
status: z5.number().optional(),
|
|
1161
|
+
message: z5.string(),
|
|
1162
|
+
response: z5.unknown().optional()
|
|
1163
|
+
});
|
|
1164
|
+
var agentAdminMutationResultSchema = z5.object({
|
|
1165
|
+
...agentOnlyFields
|
|
1166
|
+
}).passthrough();
|
|
1167
|
+
var searchProductsOutputSchema = withAgentOnlyFields({
|
|
1168
|
+
items: z5.array(productEntityRowSchema)
|
|
1169
|
+
});
|
|
1170
|
+
var generateRandomChartOutputSchema = withAgentOnlyFields({
|
|
1171
|
+
title: z5.string().min(1),
|
|
1172
|
+
axis: z5.enum(["time", "category"]),
|
|
1173
|
+
series: z5.array(metricPointEntityRowSchema)
|
|
1174
|
+
});
|
|
1175
|
+
var generateImageOutputSchema = withAgentOnlyFields({
|
|
1176
|
+
prompt: z5.string().min(1),
|
|
1177
|
+
mediaType: z5.string().min(1),
|
|
1178
|
+
model: z5.string().min(1),
|
|
1179
|
+
storageId: z5.string().min(1),
|
|
1180
|
+
url: z5.string().min(1),
|
|
1181
|
+
/** @deprecated Legacy sessions only — prefer storageId/url. */
|
|
1182
|
+
base64: z5.string().min(1).optional()
|
|
1183
|
+
});
|
|
1184
|
+
var manageTeamMembersListOutputSchema = withAgentOnlyFields({
|
|
1185
|
+
members: z5.array(memberEntityRowSchema)
|
|
1186
|
+
});
|
|
1187
|
+
var manageTeamMembersDetailOutputSchema = withAgentOnlyFields(
|
|
1188
|
+
memberEntityRowSchema.shape
|
|
1189
|
+
);
|
|
1190
|
+
var manageTeamMembersOutputSchema = z5.union([
|
|
1191
|
+
manageTeamMembersListOutputSchema,
|
|
1192
|
+
manageTeamMembersDetailOutputSchema,
|
|
1193
|
+
agentAdminMutationResultSchema,
|
|
1194
|
+
agentAdminErrorResultSchema
|
|
1195
|
+
]);
|
|
1196
|
+
var manageGroupsListOutputSchema = withAgentOnlyFields({
|
|
1197
|
+
groups: z5.array(groupEntityRowSchema)
|
|
1198
|
+
});
|
|
1199
|
+
var manageGroupsDetailOutputSchema = withAgentOnlyFields(
|
|
1200
|
+
groupDetailEntitySchema.shape
|
|
1201
|
+
);
|
|
1202
|
+
var manageGroupsSummaryOutputSchema = withAgentOnlyFields(
|
|
1203
|
+
groupEntityRowSchema.shape
|
|
1204
|
+
);
|
|
1205
|
+
var manageGroupsOutputSchema = z5.union([
|
|
1206
|
+
manageGroupsListOutputSchema,
|
|
1207
|
+
manageGroupsDetailOutputSchema,
|
|
1208
|
+
manageGroupsSummaryOutputSchema,
|
|
1209
|
+
agentAdminMutationResultSchema,
|
|
1210
|
+
agentAdminErrorResultSchema
|
|
1211
|
+
]);
|
|
1212
|
+
var queryTasksListOutputSchema = withAgentOnlyFields({
|
|
1213
|
+
items: z5.array(taskEntityRowSchema),
|
|
1214
|
+
nextCursor: z5.string().nullable().optional()
|
|
1215
|
+
});
|
|
1216
|
+
var queryTasksDetailOutputSchema = withAgentOnlyFields({
|
|
1217
|
+
id: z5.string().nullable(),
|
|
1218
|
+
status: z5.string().nullable(),
|
|
1219
|
+
type: z5.string().nullable(),
|
|
1220
|
+
name: z5.string().nullable(),
|
|
1221
|
+
description: z5.string().nullable(),
|
|
1222
|
+
validUntil: z5.number().nullable(),
|
|
1223
|
+
createdAt: z5.number().nullable(),
|
|
1224
|
+
url: z5.string().min(1).nullable()
|
|
1225
|
+
});
|
|
1226
|
+
var queryTasksOutputSchema = z5.union([
|
|
1227
|
+
queryTasksListOutputSchema,
|
|
1228
|
+
queryTasksDetailOutputSchema,
|
|
1229
|
+
agentAdminErrorResultSchema
|
|
1230
|
+
]);
|
|
1231
|
+
var assignTasksOutputSchema = z5.union([
|
|
1232
|
+
withAgentOnlyFields({
|
|
1233
|
+
results: z5.array(statusEntityRowSchema)
|
|
1234
|
+
}),
|
|
1235
|
+
agentAdminErrorResultSchema
|
|
1236
|
+
]);
|
|
1237
|
+
var workspaceUsageEntitySchema = z5.object({
|
|
1238
|
+
workspace: z5.string(),
|
|
1239
|
+
plan: z5.string(),
|
|
1240
|
+
planType: z5.string(),
|
|
1241
|
+
trialState: z5.string(),
|
|
1242
|
+
daysRemaining: z5.number().nullable(),
|
|
1243
|
+
isPaidPro: z5.boolean(),
|
|
1244
|
+
subscriptionStatus: z5.string(),
|
|
1245
|
+
tasksToday: z5.string(),
|
|
1246
|
+
tasksResetAt: z5.string(),
|
|
1247
|
+
openTasks: z5.number(),
|
|
1248
|
+
totalTasks: z5.number(),
|
|
1249
|
+
seats: z5.string(),
|
|
1250
|
+
groups: z5.string(),
|
|
1251
|
+
apiKeys: z5.string(),
|
|
1252
|
+
rateLimitPerSecond: z5.number()
|
|
1253
|
+
});
|
|
1254
|
+
var getWorkspaceUsageOutputSchema = z5.union([
|
|
1255
|
+
withAgentOnlyFields({
|
|
1256
|
+
usage: workspaceUsageEntitySchema
|
|
1257
|
+
}),
|
|
1258
|
+
agentAdminErrorResultSchema
|
|
1259
|
+
]);
|
|
1260
|
+
|
|
985
1261
|
// src/eve/tool-reply-guidance.ts
|
|
986
1262
|
var TOOL_REPLY_GUIDANCE_FIELD = "replyGuidance";
|
|
987
1263
|
var ASSIGN_TASKS_REPLY_GUIDANCE = "Reassignment results render in chat UI. Do not restate task ids or assignee emails from the card. Only mention failures, partial success, or next steps.";
|
|
@@ -993,36 +1269,20 @@ function withReplyGuidance(result, guidance) {
|
|
|
993
1269
|
}
|
|
994
1270
|
|
|
995
1271
|
// src/eve/tool-display-format.ts
|
|
996
|
-
function formatToolObjectResult(data, options) {
|
|
997
|
-
return withReplyGuidance(
|
|
998
|
-
toolDisplayResult(data, {
|
|
999
|
-
title: options.title,
|
|
1000
|
-
description: options.description,
|
|
1001
|
-
ui: options.ui
|
|
1002
|
-
}),
|
|
1003
|
-
options.replyGuidance
|
|
1004
|
-
);
|
|
1005
|
-
}
|
|
1006
1272
|
function formatToolListResult(listKey, items, options) {
|
|
1007
|
-
const
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
}
|
|
1013
|
-
} : {
|
|
1014
|
-
"ui:widget": "table",
|
|
1015
|
-
...options.itemUi ? { items: options.itemUi } : {}
|
|
1273
|
+
const ui = {
|
|
1274
|
+
...options.ui,
|
|
1275
|
+
layout: "list",
|
|
1276
|
+
rowsPath: listKey,
|
|
1277
|
+
...options.entity ? { entity: options.entity } : {},
|
|
1278
|
+
...options.present !== void 0 ? { present: options.present } : {}
|
|
1016
1279
|
};
|
|
1017
|
-
return
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
},
|
|
1024
|
-
replyGuidance: options.replyGuidance
|
|
1025
|
-
}
|
|
1280
|
+
return withUiHint(
|
|
1281
|
+
withToolUi(
|
|
1282
|
+
withReplyGuidance({ [listKey]: items }, options.replyGuidance),
|
|
1283
|
+
ui
|
|
1284
|
+
),
|
|
1285
|
+
"list"
|
|
1026
1286
|
);
|
|
1027
1287
|
}
|
|
1028
1288
|
|
|
@@ -1030,35 +1290,33 @@ function formatToolListResult(listKey, items, options) {
|
|
|
1030
1290
|
function resolveTaskCardLabel(task) {
|
|
1031
1291
|
return task.name?.trim() || task.description?.trim() || task.type?.trim() || task.id?.trim() || "Untitled task";
|
|
1032
1292
|
}
|
|
1033
|
-
function formatAssignTasksResult(results, _assignTo) {
|
|
1034
|
-
const
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1293
|
+
function formatAssignTasksResult(results, _assignTo, options) {
|
|
1294
|
+
const rows = results.map((row) => ({
|
|
1295
|
+
id: row.taskId,
|
|
1296
|
+
name: resolveTaskCardLabel({
|
|
1297
|
+
name: row.name,
|
|
1298
|
+
description: row.description,
|
|
1299
|
+
type: row.type,
|
|
1300
|
+
id: row.taskId
|
|
1301
|
+
}),
|
|
1302
|
+
type: row.type ?? null,
|
|
1303
|
+
description: row.description ?? null,
|
|
1304
|
+
status: row.success ? "reassigned" : "failed",
|
|
1305
|
+
url: buildTenantTaskUrl(options.tenantSlug, {
|
|
1039
1306
|
id: row.taskId,
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
description: row.description ?? null,
|
|
1048
|
-
status: row.success ? "reassigned" : "failed"
|
|
1049
|
-
})),
|
|
1050
|
-
{
|
|
1051
|
-
title,
|
|
1052
|
-
itemWidget: "tenantTask",
|
|
1053
|
-
replyGuidance: ASSIGN_TASKS_REPLY_GUIDANCE
|
|
1054
|
-
}
|
|
1055
|
-
);
|
|
1307
|
+
type: row.type
|
|
1308
|
+
})
|
|
1309
|
+
}));
|
|
1310
|
+
return formatToolListResult("results", rows, {
|
|
1311
|
+
replyGuidance: ASSIGN_TASKS_REPLY_GUIDANCE,
|
|
1312
|
+
entity: "status"
|
|
1313
|
+
});
|
|
1056
1314
|
}
|
|
1057
1315
|
|
|
1058
1316
|
// src/eve/tools/admin/assign-tasks.ts
|
|
1059
1317
|
var ASSIGN_TASKS_TOOL_NAME = "assign_tasks";
|
|
1060
|
-
var assignTasksInputSchema =
|
|
1061
|
-
taskIds:
|
|
1318
|
+
var assignTasksInputSchema = z6.object({
|
|
1319
|
+
taskIds: z6.array(z6.string().min(1)).min(1).max(100).describe(
|
|
1062
1320
|
"Public task ids or Convex tasks table ids to reassign. Use query_tasks search/get to resolve ids first."
|
|
1063
1321
|
),
|
|
1064
1322
|
assignTo: assignToSchema.refine(
|
|
@@ -1072,14 +1330,18 @@ function defineAssignTasksTool() {
|
|
|
1072
1330
|
return defineTool({
|
|
1073
1331
|
description: "Reassign existing inbox tasks to users or groups. Requires access to each task (tenant admins can reassign any task; others only tasks they can see). Use query_tasks to find task ids when needed. Results render as chat UI \u2014 do not restate task ids or assignees in your reply.",
|
|
1074
1332
|
inputSchema: assignTasksInputSchema,
|
|
1333
|
+
outputSchema: assignTasksOutputSchema,
|
|
1075
1334
|
async execute(input, ctx) {
|
|
1335
|
+
const caller = requireTenantCaller(ctx);
|
|
1076
1336
|
const api = createBoundAgentAdminClient(ctx);
|
|
1077
1337
|
try {
|
|
1078
1338
|
const result = await api.tasks.assign({
|
|
1079
1339
|
taskIds: input.taskIds,
|
|
1080
1340
|
assignTo: input.assignTo
|
|
1081
1341
|
});
|
|
1082
|
-
return formatAssignTasksResult(result.results, input.assignTo
|
|
1342
|
+
return formatAssignTasksResult(result.results, input.assignTo, {
|
|
1343
|
+
tenantSlug: caller.tenantSlug
|
|
1344
|
+
});
|
|
1083
1345
|
} catch (error) {
|
|
1084
1346
|
if (error instanceof RobotRockError) {
|
|
1085
1347
|
return {
|