robotrock 1.3.4 → 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 +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 +565 -261
- package/dist/eve/agent/index.js.map +1 -1
- package/dist/eve/index.d.ts +4 -4
- package/dist/eve/index.js +384 -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 +322 -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 +1353 -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 +338 -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 +306 -16
- package/dist/eve/tools/admin/manage-team-members.js.map +1 -1
- package/dist/eve/tools/admin/query-tasks.d.ts +85 -10
- package/dist/eve/tools/admin/query-tasks.js +351 -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 +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 -43
- package/dist/eve/tools/catalog/search-products.js +241 -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 +90 -5
- 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 +908 -115
- package/dist/eve/tools/index.js.map +1 -1
- package/dist/index-Drj0Rzf_.d.ts +905 -0
- package/dist/index.d.ts +5 -5
- package/dist/index.js +316 -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
package/dist/eve/agent/index.js
CHANGED
|
@@ -551,6 +551,190 @@ function parseEveAskQuestionToolOutput(output) {
|
|
|
551
551
|
return { ...optionId ? { optionId } : {}, ...text ? { text } : {} };
|
|
552
552
|
}
|
|
553
553
|
|
|
554
|
+
// src/eve/tool-result-ui-meta.ts
|
|
555
|
+
var TOOL_RESULT_UI_ENTITY_ID_RE = /^[a-z][a-z0-9_]{0,63}$/;
|
|
556
|
+
|
|
557
|
+
// src/eve/entity-schemas.ts
|
|
558
|
+
import { z } from "zod";
|
|
559
|
+
var toolResultUiMetaSchema = z.object({
|
|
560
|
+
present: z.boolean().optional(),
|
|
561
|
+
entity: z.string().regex(TOOL_RESULT_UI_ENTITY_ID_RE).optional(),
|
|
562
|
+
rowsPath: z.string().min(1).optional(),
|
|
563
|
+
layout: z.enum(["list", "chart", "table"]).optional()
|
|
564
|
+
}).strict();
|
|
565
|
+
var agentOnlyFields = {
|
|
566
|
+
replyGuidance: z.string().optional(),
|
|
567
|
+
ui: toolResultUiMetaSchema.optional(),
|
|
568
|
+
uiHint: z.enum(["list", "chart", "table"]).optional()
|
|
569
|
+
};
|
|
570
|
+
function withAgentOnlyFields(shape) {
|
|
571
|
+
return z.object({
|
|
572
|
+
...shape,
|
|
573
|
+
...agentOnlyFields
|
|
574
|
+
});
|
|
575
|
+
}
|
|
576
|
+
var productEntityRowSchema = z.object({
|
|
577
|
+
id: z.string().min(1),
|
|
578
|
+
name: z.string().min(1),
|
|
579
|
+
price: z.number(),
|
|
580
|
+
currency: z.string().min(1),
|
|
581
|
+
inStock: z.boolean(),
|
|
582
|
+
url: z.string().min(1)
|
|
583
|
+
});
|
|
584
|
+
var metricPointEntityRowSchema = z.object({
|
|
585
|
+
date: z.string().optional(),
|
|
586
|
+
category: z.string().optional(),
|
|
587
|
+
label: z.string().optional()
|
|
588
|
+
}).catchall(z.union([z.string(), z.number()]));
|
|
589
|
+
var memberEntityRowSchema = z.object({
|
|
590
|
+
name: z.string(),
|
|
591
|
+
email: z.string(),
|
|
592
|
+
role: z.string(),
|
|
593
|
+
membershipKind: z.string(),
|
|
594
|
+
profilePictureUrl: z.string().nullable()
|
|
595
|
+
});
|
|
596
|
+
var taskEntityRowSchema = z.object({
|
|
597
|
+
id: z.string().min(1),
|
|
598
|
+
name: z.string().min(1),
|
|
599
|
+
status: z.string().min(1),
|
|
600
|
+
type: z.string().nullable(),
|
|
601
|
+
description: z.string().nullable(),
|
|
602
|
+
validUntil: z.number(),
|
|
603
|
+
createdAt: z.number(),
|
|
604
|
+
url: z.string().min(1),
|
|
605
|
+
threadPriority: z.string().nullable().optional()
|
|
606
|
+
});
|
|
607
|
+
var groupEntityRowSchema = z.object({
|
|
608
|
+
name: z.string().min(1),
|
|
609
|
+
slug: z.string().min(1),
|
|
610
|
+
description: z.string().nullable(),
|
|
611
|
+
memberCount: z.number().nullable(),
|
|
612
|
+
url: z.string().min(1)
|
|
613
|
+
});
|
|
614
|
+
var groupDetailEntitySchema = z.object({
|
|
615
|
+
name: z.string().min(1),
|
|
616
|
+
slug: z.string().min(1),
|
|
617
|
+
description: z.string().nullable(),
|
|
618
|
+
url: z.string().min(1),
|
|
619
|
+
members: z.array(
|
|
620
|
+
z.object({
|
|
621
|
+
name: z.string(),
|
|
622
|
+
email: z.string(),
|
|
623
|
+
profilePictureUrl: z.string().nullable()
|
|
624
|
+
})
|
|
625
|
+
)
|
|
626
|
+
});
|
|
627
|
+
var statusEntityRowSchema = z.object({
|
|
628
|
+
id: z.string().min(1),
|
|
629
|
+
name: z.string().min(1),
|
|
630
|
+
status: z.string().min(1),
|
|
631
|
+
url: z.string().min(1),
|
|
632
|
+
type: z.string().nullable().optional(),
|
|
633
|
+
description: z.string().nullable().optional()
|
|
634
|
+
});
|
|
635
|
+
var agentAdminErrorResultSchema = z.object({
|
|
636
|
+
ok: z.literal(false),
|
|
637
|
+
status: z.number().optional(),
|
|
638
|
+
message: z.string(),
|
|
639
|
+
response: z.unknown().optional()
|
|
640
|
+
});
|
|
641
|
+
var agentAdminMutationResultSchema = z.object({
|
|
642
|
+
...agentOnlyFields
|
|
643
|
+
}).passthrough();
|
|
644
|
+
var searchProductsOutputSchema = withAgentOnlyFields({
|
|
645
|
+
items: z.array(productEntityRowSchema)
|
|
646
|
+
});
|
|
647
|
+
var generateRandomChartOutputSchema = withAgentOnlyFields({
|
|
648
|
+
title: z.string().min(1),
|
|
649
|
+
axis: z.enum(["time", "category"]),
|
|
650
|
+
series: z.array(metricPointEntityRowSchema)
|
|
651
|
+
});
|
|
652
|
+
var generateImageOutputSchema = withAgentOnlyFields({
|
|
653
|
+
prompt: z.string().min(1),
|
|
654
|
+
mediaType: z.string().min(1),
|
|
655
|
+
model: z.string().min(1),
|
|
656
|
+
storageId: z.string().min(1),
|
|
657
|
+
url: z.string().min(1),
|
|
658
|
+
/** @deprecated Legacy sessions only — prefer storageId/url. */
|
|
659
|
+
base64: z.string().min(1).optional()
|
|
660
|
+
});
|
|
661
|
+
var manageTeamMembersListOutputSchema = withAgentOnlyFields({
|
|
662
|
+
members: z.array(memberEntityRowSchema)
|
|
663
|
+
});
|
|
664
|
+
var manageTeamMembersDetailOutputSchema = withAgentOnlyFields(
|
|
665
|
+
memberEntityRowSchema.shape
|
|
666
|
+
);
|
|
667
|
+
var manageTeamMembersOutputSchema = z.union([
|
|
668
|
+
manageTeamMembersListOutputSchema,
|
|
669
|
+
manageTeamMembersDetailOutputSchema,
|
|
670
|
+
agentAdminMutationResultSchema,
|
|
671
|
+
agentAdminErrorResultSchema
|
|
672
|
+
]);
|
|
673
|
+
var manageGroupsListOutputSchema = withAgentOnlyFields({
|
|
674
|
+
groups: z.array(groupEntityRowSchema)
|
|
675
|
+
});
|
|
676
|
+
var manageGroupsDetailOutputSchema = withAgentOnlyFields(
|
|
677
|
+
groupDetailEntitySchema.shape
|
|
678
|
+
);
|
|
679
|
+
var manageGroupsSummaryOutputSchema = withAgentOnlyFields(
|
|
680
|
+
groupEntityRowSchema.shape
|
|
681
|
+
);
|
|
682
|
+
var manageGroupsOutputSchema = z.union([
|
|
683
|
+
manageGroupsListOutputSchema,
|
|
684
|
+
manageGroupsDetailOutputSchema,
|
|
685
|
+
manageGroupsSummaryOutputSchema,
|
|
686
|
+
agentAdminMutationResultSchema,
|
|
687
|
+
agentAdminErrorResultSchema
|
|
688
|
+
]);
|
|
689
|
+
var queryTasksListOutputSchema = withAgentOnlyFields({
|
|
690
|
+
items: z.array(taskEntityRowSchema),
|
|
691
|
+
nextCursor: z.string().nullable().optional()
|
|
692
|
+
});
|
|
693
|
+
var queryTasksDetailOutputSchema = withAgentOnlyFields({
|
|
694
|
+
id: z.string().nullable(),
|
|
695
|
+
status: z.string().nullable(),
|
|
696
|
+
type: z.string().nullable(),
|
|
697
|
+
name: z.string().nullable(),
|
|
698
|
+
description: z.string().nullable(),
|
|
699
|
+
validUntil: z.number().nullable(),
|
|
700
|
+
createdAt: z.number().nullable(),
|
|
701
|
+
url: z.string().min(1).nullable()
|
|
702
|
+
});
|
|
703
|
+
var queryTasksOutputSchema = z.union([
|
|
704
|
+
queryTasksListOutputSchema,
|
|
705
|
+
queryTasksDetailOutputSchema,
|
|
706
|
+
agentAdminErrorResultSchema
|
|
707
|
+
]);
|
|
708
|
+
var assignTasksOutputSchema = z.union([
|
|
709
|
+
withAgentOnlyFields({
|
|
710
|
+
results: z.array(statusEntityRowSchema)
|
|
711
|
+
}),
|
|
712
|
+
agentAdminErrorResultSchema
|
|
713
|
+
]);
|
|
714
|
+
var workspaceUsageEntitySchema = z.object({
|
|
715
|
+
workspace: z.string(),
|
|
716
|
+
plan: z.string(),
|
|
717
|
+
planType: z.string(),
|
|
718
|
+
trialState: z.string(),
|
|
719
|
+
daysRemaining: z.number().nullable(),
|
|
720
|
+
isPaidPro: z.boolean(),
|
|
721
|
+
subscriptionStatus: z.string(),
|
|
722
|
+
tasksToday: z.string(),
|
|
723
|
+
tasksResetAt: z.string(),
|
|
724
|
+
openTasks: z.number(),
|
|
725
|
+
totalTasks: z.number(),
|
|
726
|
+
seats: z.string(),
|
|
727
|
+
groups: z.string(),
|
|
728
|
+
apiKeys: z.string(),
|
|
729
|
+
rateLimitPerSecond: z.number()
|
|
730
|
+
});
|
|
731
|
+
var getWorkspaceUsageOutputSchema = z.union([
|
|
732
|
+
withAgentOnlyFields({
|
|
733
|
+
usage: workspaceUsageEntitySchema
|
|
734
|
+
}),
|
|
735
|
+
agentAdminErrorResultSchema
|
|
736
|
+
]);
|
|
737
|
+
|
|
554
738
|
// src/eve/index.ts
|
|
555
739
|
var ROBOTROCK_READY_HOOK_SLUG = "robotrock-ready";
|
|
556
740
|
|
|
@@ -865,10 +1049,10 @@ function robotrockEveChannel(options) {
|
|
|
865
1049
|
}
|
|
866
1050
|
|
|
867
1051
|
// src/schemas/index.ts
|
|
868
|
-
import { z as
|
|
1052
|
+
import { z as z5 } from "zod";
|
|
869
1053
|
|
|
870
1054
|
// ../core/src/schemas/task.ts
|
|
871
|
-
import { z } from "zod";
|
|
1055
|
+
import { z as z2 } from "zod";
|
|
872
1056
|
|
|
873
1057
|
// ../core/src/schemas/context-urls.ts
|
|
874
1058
|
function resolveLinkUrl(value) {
|
|
@@ -924,67 +1108,67 @@ function validateContextPublicUrls(context) {
|
|
|
924
1108
|
}
|
|
925
1109
|
|
|
926
1110
|
// ../core/src/schemas/task.ts
|
|
927
|
-
var safeUrlSchema =
|
|
1111
|
+
var safeUrlSchema = z2.string().refine((url) => isPublicHttpUrl(url), {
|
|
928
1112
|
message: PUBLIC_HTTP_URL_ERROR
|
|
929
1113
|
});
|
|
930
|
-
var handlerUrlSchema =
|
|
1114
|
+
var handlerUrlSchema = z2.string().refine((url) => isAllowedHandlerUrl(url), {
|
|
931
1115
|
message: HANDLER_URL_ERROR
|
|
932
1116
|
});
|
|
933
|
-
var jsonSchema7Schema =
|
|
1117
|
+
var jsonSchema7Schema = z2.custom(
|
|
934
1118
|
(val) => typeof val === "object" && val !== null,
|
|
935
1119
|
{ message: "Must be a valid JSON Schema object" }
|
|
936
1120
|
);
|
|
937
|
-
var uiSchemaSchema =
|
|
1121
|
+
var uiSchemaSchema = z2.custom((val) => typeof val === "object" && val !== null, {
|
|
938
1122
|
message: "Must be a valid UiSchema object"
|
|
939
1123
|
});
|
|
940
|
-
var webhookHandlerSchema =
|
|
941
|
-
type:
|
|
1124
|
+
var webhookHandlerSchema = z2.object({
|
|
1125
|
+
type: z2.literal("webhook"),
|
|
942
1126
|
url: handlerUrlSchema,
|
|
943
|
-
headers:
|
|
1127
|
+
headers: z2.record(z2.string(), z2.string())
|
|
944
1128
|
});
|
|
945
1129
|
var triggerHandlerSchema = webhookHandlerSchema.extend({
|
|
946
|
-
type:
|
|
947
|
-
tokenId:
|
|
1130
|
+
type: z2.literal("trigger"),
|
|
1131
|
+
tokenId: z2.string().min(1)
|
|
948
1132
|
});
|
|
949
|
-
var handlerSchema =
|
|
950
|
-
var taskActionInputSchema =
|
|
951
|
-
id:
|
|
952
|
-
title:
|
|
953
|
-
description:
|
|
1133
|
+
var handlerSchema = z2.discriminatedUnion("type", [webhookHandlerSchema, triggerHandlerSchema]);
|
|
1134
|
+
var taskActionInputSchema = z2.object({
|
|
1135
|
+
id: z2.string().min(1),
|
|
1136
|
+
title: z2.string().min(1),
|
|
1137
|
+
description: z2.string().optional(),
|
|
954
1138
|
schema: jsonSchema7Schema.optional(),
|
|
955
1139
|
ui: uiSchemaSchema.optional(),
|
|
956
|
-
data:
|
|
1140
|
+
data: z2.record(z2.string(), z2.unknown()).optional()
|
|
957
1141
|
});
|
|
958
1142
|
var taskActionSchema = taskActionInputSchema.extend({
|
|
959
1143
|
// Optional handlers for this action - if present, must have at least 1
|
|
960
|
-
handlers:
|
|
961
|
-
});
|
|
962
|
-
var uiFieldSchemaSchema =
|
|
963
|
-
"ui:widget":
|
|
964
|
-
"ui:title":
|
|
965
|
-
"ui:description":
|
|
966
|
-
"ui:options":
|
|
967
|
-
items:
|
|
1144
|
+
handlers: z2.array(handlerSchema).min(1).optional()
|
|
1145
|
+
});
|
|
1146
|
+
var uiFieldSchemaSchema = z2.object({
|
|
1147
|
+
"ui:widget": z2.string().optional(),
|
|
1148
|
+
"ui:title": z2.string().optional(),
|
|
1149
|
+
"ui:description": z2.string().optional(),
|
|
1150
|
+
"ui:options": z2.record(z2.string(), z2.unknown()).optional(),
|
|
1151
|
+
items: z2.lazy(() => z2.record(z2.string(), uiFieldSchemaSchema)).optional()
|
|
968
1152
|
}).passthrough();
|
|
969
|
-
var contextUiSchema =
|
|
970
|
-
var contextDataSchema =
|
|
971
|
-
data:
|
|
1153
|
+
var contextUiSchema = z2.record(z2.string(), uiFieldSchemaSchema).optional();
|
|
1154
|
+
var contextDataSchema = z2.object({
|
|
1155
|
+
data: z2.record(z2.string(), z2.unknown()),
|
|
972
1156
|
ui: contextUiSchema
|
|
973
1157
|
}).optional();
|
|
974
1158
|
var TASK_CONTEXT_FORMAT_VERSION = 2;
|
|
975
|
-
var taskContextObjectBaseSchema =
|
|
1159
|
+
var taskContextObjectBaseSchema = z2.object({
|
|
976
1160
|
/** Source application id; omitted tasks are grouped in the default inbox. */
|
|
977
|
-
app:
|
|
978
|
-
type:
|
|
979
|
-
name:
|
|
980
|
-
description:
|
|
981
|
-
validUntil:
|
|
1161
|
+
app: z2.string().min(1).optional(),
|
|
1162
|
+
type: z2.string().min(1),
|
|
1163
|
+
name: z2.string().min(1),
|
|
1164
|
+
description: z2.string().optional(),
|
|
1165
|
+
validUntil: z2.string().optional(),
|
|
982
1166
|
context: contextDataSchema,
|
|
983
1167
|
/** Task context wire format version. @default 2 */
|
|
984
|
-
contextVersion:
|
|
1168
|
+
contextVersion: z2.literal(2).optional(),
|
|
985
1169
|
/** @deprecated Use `contextVersion`. Accepted on ingest only. */
|
|
986
|
-
version:
|
|
987
|
-
actions:
|
|
1170
|
+
version: z2.literal(2).optional(),
|
|
1171
|
+
actions: z2.array(taskActionSchema).min(1, "At least one action is required")
|
|
988
1172
|
});
|
|
989
1173
|
function normalizeTaskContextVersion(data) {
|
|
990
1174
|
const { version: legacyVersion, contextVersion, ...rest } = data;
|
|
@@ -1000,7 +1184,7 @@ function refineContextPublicUrls(data, ctx) {
|
|
|
1000
1184
|
const error = validateContextPublicUrls(data.context);
|
|
1001
1185
|
if (error) {
|
|
1002
1186
|
ctx.addIssue({
|
|
1003
|
-
code:
|
|
1187
|
+
code: z2.ZodIssueCode.custom,
|
|
1004
1188
|
message: error,
|
|
1005
1189
|
path: ["context"]
|
|
1006
1190
|
});
|
|
@@ -1009,9 +1193,9 @@ function refineContextPublicUrls(data, ctx) {
|
|
|
1009
1193
|
var taskContextSchema = taskContextObjectSchema.superRefine(
|
|
1010
1194
|
refineContextPublicUrls
|
|
1011
1195
|
);
|
|
1012
|
-
var assignToSchema =
|
|
1013
|
-
users:
|
|
1014
|
-
groups:
|
|
1196
|
+
var assignToSchema = z2.object({
|
|
1197
|
+
users: z2.array(z2.string().email()).optional(),
|
|
1198
|
+
groups: z2.array(z2.string().min(1)).optional()
|
|
1015
1199
|
}).refine(
|
|
1016
1200
|
(data) => {
|
|
1017
1201
|
const groups = data.groups ?? [];
|
|
@@ -1022,7 +1206,7 @@ var assignToSchema = z.object({
|
|
|
1022
1206
|
},
|
|
1023
1207
|
{ message: 'Cannot combine "all" with other group slugs' }
|
|
1024
1208
|
);
|
|
1025
|
-
var threadUpdateMessageSchema =
|
|
1209
|
+
var threadUpdateMessageSchema = z2.string().min(1).max(500);
|
|
1026
1210
|
var threadUpdateStatuses = [
|
|
1027
1211
|
"info",
|
|
1028
1212
|
"queued",
|
|
@@ -1032,16 +1216,16 @@ var threadUpdateStatuses = [
|
|
|
1032
1216
|
"failed",
|
|
1033
1217
|
"cancelled"
|
|
1034
1218
|
];
|
|
1035
|
-
var threadUpdateStatusSchema =
|
|
1036
|
-
var threadUpdateInputSchema =
|
|
1219
|
+
var threadUpdateStatusSchema = z2.enum(threadUpdateStatuses);
|
|
1220
|
+
var threadUpdateInputSchema = z2.object({
|
|
1037
1221
|
message: threadUpdateMessageSchema,
|
|
1038
1222
|
status: threadUpdateStatusSchema.optional()
|
|
1039
1223
|
});
|
|
1040
1224
|
var taskPriorities = ["low", "normal", "high", "urgent"];
|
|
1041
|
-
var taskPrioritySchema =
|
|
1042
|
-
var agentTelemetrySchema =
|
|
1225
|
+
var taskPrioritySchema = z2.enum(taskPriorities);
|
|
1226
|
+
var agentTelemetrySchema = z2.object({
|
|
1043
1227
|
/** Agent or app version (semver, git SHA, deploy tag — caller-defined). */
|
|
1044
|
-
version:
|
|
1228
|
+
version: z2.string().min(1)
|
|
1045
1229
|
});
|
|
1046
1230
|
var createTaskBodySchema = taskContextObjectBaseSchema.extend({
|
|
1047
1231
|
assignTo: assignToSchema.optional(),
|
|
@@ -1049,7 +1233,7 @@ var createTaskBodySchema = taskContextObjectBaseSchema.extend({
|
|
|
1049
1233
|
* Groups related tasks together. When omitted, the server generates one and
|
|
1050
1234
|
* returns it so the caller can reuse it on later tasks in the same thread.
|
|
1051
1235
|
*/
|
|
1052
|
-
threadId:
|
|
1236
|
+
threadId: z2.string().min(1).optional(),
|
|
1053
1237
|
/**
|
|
1054
1238
|
* Optional thread priority. When set, applies to the whole thread and
|
|
1055
1239
|
* overwrites any previous priority. Omit on later tasks to leave unchanged.
|
|
@@ -1063,280 +1247,346 @@ var createTaskBodySchema = taskContextObjectBaseSchema.extend({
|
|
|
1063
1247
|
/** Agent release version — not shown in inbox UI. */
|
|
1064
1248
|
agent: agentTelemetrySchema.optional()
|
|
1065
1249
|
}).transform(normalizeTaskContextVersion).superRefine(refineContextPublicUrls);
|
|
1066
|
-
var agentChatSeedActionSchema =
|
|
1250
|
+
var agentChatSeedActionSchema = z2.object({
|
|
1067
1251
|
/** Stable action id echoed back on submit; auto-derived from title when omitted. */
|
|
1068
|
-
id:
|
|
1069
|
-
title:
|
|
1070
|
-
description:
|
|
1252
|
+
id: z2.string().min(1).optional(),
|
|
1253
|
+
title: z2.string().min(1),
|
|
1254
|
+
description: z2.string().optional(),
|
|
1071
1255
|
/** JSON Schema object for the form fields. */
|
|
1072
|
-
schema:
|
|
1256
|
+
schema: z2.record(z2.string(), z2.unknown()).optional(),
|
|
1073
1257
|
/** RJSF ui schema overrides (ui:widget, ui:enumNames, etc.). */
|
|
1074
|
-
ui:
|
|
1258
|
+
ui: z2.record(z2.string(), z2.unknown()).optional(),
|
|
1075
1259
|
/** Optional default field values. */
|
|
1076
|
-
data:
|
|
1260
|
+
data: z2.record(z2.string(), z2.unknown()).optional()
|
|
1077
1261
|
});
|
|
1078
|
-
var agentChatSeedMessageSchema =
|
|
1079
|
-
role:
|
|
1080
|
-
text:
|
|
1262
|
+
var agentChatSeedMessageSchema = z2.object({
|
|
1263
|
+
role: z2.enum(["user", "assistant"]),
|
|
1264
|
+
text: z2.string().min(1),
|
|
1081
1265
|
/** Optional display-name override for the message sender. */
|
|
1082
|
-
senderName:
|
|
1266
|
+
senderName: z2.string().min(1).optional(),
|
|
1083
1267
|
/**
|
|
1084
1268
|
* Optional structured input request rendered as a styled RobotRock action
|
|
1085
1269
|
* widget below the message text. Use this instead of asking the user to reply
|
|
1086
1270
|
* in plain text so the request is always a proper action form.
|
|
1087
1271
|
*/
|
|
1088
|
-
requestActionInput:
|
|
1089
|
-
prompt:
|
|
1272
|
+
requestActionInput: z2.object({
|
|
1273
|
+
prompt: z2.string().optional(),
|
|
1090
1274
|
action: agentChatSeedActionSchema
|
|
1091
1275
|
}).optional()
|
|
1092
1276
|
});
|
|
1093
|
-
var eveAgentChatTransportSchema =
|
|
1094
|
-
kind:
|
|
1095
|
-
chatId:
|
|
1096
|
-
baseUrl:
|
|
1097
|
-
sessionId:
|
|
1098
|
-
continuationToken:
|
|
1099
|
-
streamIndex:
|
|
1100
|
-
isStreaming:
|
|
1277
|
+
var eveAgentChatTransportSchema = z2.object({
|
|
1278
|
+
kind: z2.literal("eve"),
|
|
1279
|
+
chatId: z2.string().min(1),
|
|
1280
|
+
baseUrl: z2.string().url(),
|
|
1281
|
+
sessionId: z2.string().optional(),
|
|
1282
|
+
continuationToken: z2.string().optional(),
|
|
1283
|
+
streamIndex: z2.number().int().nonnegative().optional(),
|
|
1284
|
+
isStreaming: z2.boolean().optional()
|
|
1101
1285
|
});
|
|
1102
|
-
var createAgentChatBodySchema =
|
|
1286
|
+
var createAgentChatBodySchema = z2.object({
|
|
1103
1287
|
/** Agent id (eve agent name). Required unless `parentChatId` is set. */
|
|
1104
|
-
agentIdentifier:
|
|
1288
|
+
agentIdentifier: z2.string().min(1).optional(),
|
|
1105
1289
|
/** Inherit tenant/connection/agent from an existing chat (agent-spawned chats). */
|
|
1106
|
-
parentChatId:
|
|
1290
|
+
parentChatId: z2.string().min(1).optional(),
|
|
1107
1291
|
/** Convex tenantEveConnections id; resolved from the tenant when omitted. */
|
|
1108
|
-
eveConnectionId:
|
|
1292
|
+
eveConnectionId: z2.string().min(1).optional(),
|
|
1109
1293
|
/** Source application id; groups the chat under an inbox section. */
|
|
1110
|
-
app:
|
|
1294
|
+
app: z2.string().min(1).optional(),
|
|
1111
1295
|
/** Email of the user who owns the chat. Required unless `parentChatId` is set. */
|
|
1112
|
-
ownerEmail:
|
|
1113
|
-
title:
|
|
1114
|
-
messages:
|
|
1296
|
+
ownerEmail: z2.string().email().optional(),
|
|
1297
|
+
title: z2.string().min(1),
|
|
1298
|
+
messages: z2.array(agentChatSeedMessageSchema).default([]),
|
|
1115
1299
|
/** Provenance label stored on the session ("cron" | "agent" | ...). */
|
|
1116
|
-
source:
|
|
1300
|
+
source: z2.string().min(1).optional()
|
|
1117
1301
|
}).refine((data) => Boolean(data.agentIdentifier || data.parentChatId), {
|
|
1118
1302
|
message: "Provide either agentIdentifier or parentChatId"
|
|
1119
1303
|
}).refine((data) => Boolean(data.ownerEmail || data.parentChatId), {
|
|
1120
1304
|
message: "Provide ownerEmail unless parentChatId is set"
|
|
1121
1305
|
});
|
|
1122
|
-
var agentChatAuditToolBodySchema =
|
|
1123
|
-
eveSessionId:
|
|
1124
|
-
userId:
|
|
1125
|
-
toolCallId:
|
|
1126
|
-
toolName:
|
|
1127
|
-
input:
|
|
1128
|
-
success:
|
|
1129
|
-
status:
|
|
1130
|
-
error:
|
|
1131
|
-
idempotencyKey:
|
|
1132
|
-
});
|
|
1133
|
-
var agentChatAuditInputBodySchema =
|
|
1134
|
-
eveSessionId:
|
|
1135
|
-
userId:
|
|
1136
|
-
actionId:
|
|
1137
|
-
actionTitle:
|
|
1138
|
-
prompt:
|
|
1139
|
-
data:
|
|
1140
|
-
idempotencyKey:
|
|
1306
|
+
var agentChatAuditToolBodySchema = z2.object({
|
|
1307
|
+
eveSessionId: z2.string().min(1),
|
|
1308
|
+
userId: z2.string().min(1),
|
|
1309
|
+
toolCallId: z2.string().min(1),
|
|
1310
|
+
toolName: z2.string().min(1),
|
|
1311
|
+
input: z2.record(z2.string(), z2.unknown()).default({}),
|
|
1312
|
+
success: z2.boolean(),
|
|
1313
|
+
status: z2.enum(["completed", "failed", "rejected"]),
|
|
1314
|
+
error: z2.string().optional(),
|
|
1315
|
+
idempotencyKey: z2.string().optional()
|
|
1316
|
+
});
|
|
1317
|
+
var agentChatAuditInputBodySchema = z2.object({
|
|
1318
|
+
eveSessionId: z2.string().min(1),
|
|
1319
|
+
userId: z2.string().min(1),
|
|
1320
|
+
actionId: z2.string().min(1),
|
|
1321
|
+
actionTitle: z2.string().optional(),
|
|
1322
|
+
prompt: z2.string().optional(),
|
|
1323
|
+
data: z2.record(z2.string(), z2.unknown()).optional(),
|
|
1324
|
+
idempotencyKey: z2.string().optional(),
|
|
1141
1325
|
/** Eve input request id — used to merge staged HITL metadata. */
|
|
1142
|
-
requestId:
|
|
1326
|
+
requestId: z2.string().optional(),
|
|
1143
1327
|
/** Eve tool call id — fallback lookup for staged HITL metadata. */
|
|
1144
|
-
toolCallId:
|
|
1328
|
+
toolCallId: z2.string().optional()
|
|
1145
1329
|
});
|
|
1146
|
-
var eveHitlStagedOptionSchema =
|
|
1147
|
-
id:
|
|
1148
|
-
label:
|
|
1330
|
+
var eveHitlStagedOptionSchema = z2.object({
|
|
1331
|
+
id: z2.string(),
|
|
1332
|
+
label: z2.string()
|
|
1149
1333
|
});
|
|
1150
|
-
var agentChatStageHitlBodySchema =
|
|
1151
|
-
eveSessionId:
|
|
1152
|
-
requests:
|
|
1153
|
-
|
|
1154
|
-
requestId:
|
|
1155
|
-
toolCallId:
|
|
1156
|
-
toolName:
|
|
1157
|
-
prompt:
|
|
1158
|
-
display:
|
|
1159
|
-
allowFreeform:
|
|
1160
|
-
options:
|
|
1161
|
-
toolInput:
|
|
1334
|
+
var agentChatStageHitlBodySchema = z2.object({
|
|
1335
|
+
eveSessionId: z2.string().min(1),
|
|
1336
|
+
requests: z2.array(
|
|
1337
|
+
z2.object({
|
|
1338
|
+
requestId: z2.string().min(1),
|
|
1339
|
+
toolCallId: z2.string().min(1),
|
|
1340
|
+
toolName: z2.string().min(1),
|
|
1341
|
+
prompt: z2.string().min(1),
|
|
1342
|
+
display: z2.enum(["confirmation", "select", "text"]).optional(),
|
|
1343
|
+
allowFreeform: z2.boolean().optional(),
|
|
1344
|
+
options: z2.array(eveHitlStagedOptionSchema).optional(),
|
|
1345
|
+
toolInput: z2.record(z2.string(), z2.unknown()).optional()
|
|
1162
1346
|
})
|
|
1163
1347
|
)
|
|
1164
1348
|
});
|
|
1165
|
-
var agentChatLinkTaskBodySchema =
|
|
1166
|
-
eveSessionId:
|
|
1167
|
-
publicTaskId:
|
|
1168
|
-
toolCallId:
|
|
1349
|
+
var agentChatLinkTaskBodySchema = z2.object({
|
|
1350
|
+
eveSessionId: z2.string().min(1),
|
|
1351
|
+
publicTaskId: z2.string().min(1),
|
|
1352
|
+
toolCallId: z2.string().min(1)
|
|
1353
|
+
});
|
|
1354
|
+
var AGENT_FILE_TAGS_MAX = 20;
|
|
1355
|
+
var AGENT_FILE_TAG_MAX_LENGTH = 64;
|
|
1356
|
+
function normalizeAgentFileTags(tags) {
|
|
1357
|
+
if (!tags?.length) return void 0;
|
|
1358
|
+
const seen = /* @__PURE__ */ new Set();
|
|
1359
|
+
const out = [];
|
|
1360
|
+
for (const raw of tags) {
|
|
1361
|
+
const tag = raw.trim().toLowerCase().slice(0, AGENT_FILE_TAG_MAX_LENGTH);
|
|
1362
|
+
if (!tag || seen.has(tag)) continue;
|
|
1363
|
+
seen.add(tag);
|
|
1364
|
+
out.push(tag);
|
|
1365
|
+
if (out.length >= AGENT_FILE_TAGS_MAX) break;
|
|
1366
|
+
}
|
|
1367
|
+
return out.length > 0 ? out : void 0;
|
|
1368
|
+
}
|
|
1369
|
+
var agentChatUploadImageBodySchema = z2.object({
|
|
1370
|
+
mediaType: z2.string().min(1),
|
|
1371
|
+
/** Raw base64 (no data: URL prefix). */
|
|
1372
|
+
base64: z2.string().min(1),
|
|
1373
|
+
chatId: z2.string().min(1).optional(),
|
|
1374
|
+
publicTaskId: z2.string().min(1).optional(),
|
|
1375
|
+
source: z2.string().min(1).optional(),
|
|
1376
|
+
/** Display / search name (e.g. `sunset-robot.png`). */
|
|
1377
|
+
filename: z2.string().min(1).max(255).optional(),
|
|
1378
|
+
/** Human-readable description (e.g. generation prompt). */
|
|
1379
|
+
description: z2.string().min(1).max(2e3).optional(),
|
|
1380
|
+
/**
|
|
1381
|
+
* Optional labels for later grouping/filtering.
|
|
1382
|
+
* Normalized to lowercase trimmed unique strings (max 20, 64 chars each).
|
|
1383
|
+
*/
|
|
1384
|
+
tags: z2.array(z2.string().min(1).max(AGENT_FILE_TAG_MAX_LENGTH)).max(AGENT_FILE_TAGS_MAX).optional().transform((tags) => normalizeAgentFileTags(tags))
|
|
1385
|
+
}).refine((data) => Boolean(data.chatId || data.publicTaskId), {
|
|
1386
|
+
message: "Provide chatId and/or publicTaskId"
|
|
1169
1387
|
});
|
|
1170
1388
|
|
|
1171
1389
|
// ../core/src/schemas/tool-result-display.ts
|
|
1172
|
-
import { z as
|
|
1173
|
-
var toolDisplayMetadataSchema =
|
|
1174
|
-
widget:
|
|
1175
|
-
title:
|
|
1176
|
-
description:
|
|
1390
|
+
import { z as z3 } from "zod";
|
|
1391
|
+
var toolDisplayMetadataSchema = z3.object({
|
|
1392
|
+
widget: z3.string().optional(),
|
|
1393
|
+
title: z3.string().optional(),
|
|
1394
|
+
description: z3.string().optional()
|
|
1177
1395
|
});
|
|
1178
|
-
var toolDisplayEnvelopeSchema =
|
|
1396
|
+
var toolDisplayEnvelopeSchema = z3.object({
|
|
1179
1397
|
display: toolDisplayMetadataSchema.optional(),
|
|
1180
|
-
data:
|
|
1181
|
-
ui:
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
"ui:widget":
|
|
1185
|
-
"ui:title":
|
|
1186
|
-
"ui:description":
|
|
1187
|
-
"ui:options":
|
|
1398
|
+
data: z3.record(z3.string(), z3.unknown()),
|
|
1399
|
+
ui: z3.record(
|
|
1400
|
+
z3.string(),
|
|
1401
|
+
z3.object({
|
|
1402
|
+
"ui:widget": z3.string().optional(),
|
|
1403
|
+
"ui:title": z3.string().optional(),
|
|
1404
|
+
"ui:description": z3.string().optional(),
|
|
1405
|
+
"ui:options": z3.record(z3.string(), z3.unknown()).optional()
|
|
1188
1406
|
}).passthrough()
|
|
1189
1407
|
).optional()
|
|
1190
1408
|
});
|
|
1191
1409
|
|
|
1192
1410
|
// ../core/src/schemas/agent-admin.ts
|
|
1193
|
-
import { z as
|
|
1194
|
-
var tenantRoleSchema =
|
|
1195
|
-
var agentAdminUserSchema =
|
|
1196
|
-
id:
|
|
1197
|
-
email:
|
|
1198
|
-
name:
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1411
|
+
import { z as z4 } from "zod";
|
|
1412
|
+
var tenantRoleSchema = z4.enum(["admin", "member"]);
|
|
1413
|
+
var agentAdminUserSchema = z4.object({
|
|
1414
|
+
id: z4.string(),
|
|
1415
|
+
email: z4.string().email(),
|
|
1416
|
+
name: z4.string(),
|
|
1417
|
+
profilePictureUrl: z4.string().nullable().optional()
|
|
1418
|
+
});
|
|
1419
|
+
var agentAdminMemberSchema = z4.object({
|
|
1420
|
+
userId: z4.string(),
|
|
1421
|
+
role: z4.string(),
|
|
1422
|
+
membershipKind: z4.enum(["team", "assignee"]),
|
|
1423
|
+
hasLoggedIn: z4.boolean(),
|
|
1205
1424
|
user: agentAdminUserSchema
|
|
1206
1425
|
});
|
|
1207
|
-
var agentAdminGroupSchema =
|
|
1208
|
-
id:
|
|
1209
|
-
name:
|
|
1210
|
-
slug:
|
|
1211
|
-
description:
|
|
1212
|
-
memberCount:
|
|
1426
|
+
var agentAdminGroupSchema = z4.object({
|
|
1427
|
+
id: z4.string(),
|
|
1428
|
+
name: z4.string(),
|
|
1429
|
+
slug: z4.string(),
|
|
1430
|
+
description: z4.string().nullable(),
|
|
1431
|
+
memberCount: z4.number().optional()
|
|
1213
1432
|
});
|
|
1214
1433
|
var agentAdminGroupDetailSchema = agentAdminGroupSchema.extend({
|
|
1215
|
-
members:
|
|
1216
|
-
|
|
1217
|
-
userId:
|
|
1434
|
+
members: z4.array(
|
|
1435
|
+
z4.object({
|
|
1436
|
+
userId: z4.string(),
|
|
1218
1437
|
user: agentAdminUserSchema
|
|
1219
1438
|
})
|
|
1220
1439
|
)
|
|
1221
1440
|
});
|
|
1222
|
-
var agentAdminTaskSummarySchema =
|
|
1223
|
-
id:
|
|
1224
|
-
convexId:
|
|
1225
|
-
status:
|
|
1226
|
-
type:
|
|
1227
|
-
name:
|
|
1228
|
-
description:
|
|
1229
|
-
validUntil:
|
|
1230
|
-
createdAt:
|
|
1231
|
-
threadPriority:
|
|
1232
|
-
handledByUserId:
|
|
1233
|
-
});
|
|
1234
|
-
var inviteMemberBodySchema =
|
|
1235
|
-
email:
|
|
1441
|
+
var agentAdminTaskSummarySchema = z4.object({
|
|
1442
|
+
id: z4.string(),
|
|
1443
|
+
convexId: z4.string(),
|
|
1444
|
+
status: z4.string(),
|
|
1445
|
+
type: z4.string().nullable(),
|
|
1446
|
+
name: z4.string().nullable(),
|
|
1447
|
+
description: z4.string().nullable(),
|
|
1448
|
+
validUntil: z4.number(),
|
|
1449
|
+
createdAt: z4.number(),
|
|
1450
|
+
threadPriority: z4.string().nullable(),
|
|
1451
|
+
handledByUserId: z4.string().nullable()
|
|
1452
|
+
});
|
|
1453
|
+
var inviteMemberBodySchema = z4.object({
|
|
1454
|
+
email: z4.string().email(),
|
|
1236
1455
|
role: tenantRoleSchema.optional()
|
|
1237
1456
|
});
|
|
1238
|
-
var updateMemberRoleBodySchema =
|
|
1457
|
+
var updateMemberRoleBodySchema = z4.object({
|
|
1239
1458
|
role: tenantRoleSchema
|
|
1240
1459
|
});
|
|
1241
|
-
var createGroupBodySchema =
|
|
1242
|
-
name:
|
|
1243
|
-
description:
|
|
1460
|
+
var createGroupBodySchema = z4.object({
|
|
1461
|
+
name: z4.string().min(1),
|
|
1462
|
+
description: z4.string().optional()
|
|
1244
1463
|
});
|
|
1245
|
-
var updateGroupBodySchema =
|
|
1246
|
-
name:
|
|
1247
|
-
description:
|
|
1464
|
+
var updateGroupBodySchema = z4.object({
|
|
1465
|
+
name: z4.string().min(1).optional(),
|
|
1466
|
+
description: z4.string().optional()
|
|
1467
|
+
});
|
|
1468
|
+
var addGroupMemberBodySchema = z4.object({
|
|
1469
|
+
userId: z4.string().min(1).describe("Convex user id or member email.")
|
|
1470
|
+
});
|
|
1471
|
+
var listTasksQuerySchema = z4.object({
|
|
1472
|
+
statusFilter: z4.enum(["all", "open", "handled", "expired"]).optional(),
|
|
1473
|
+
typeFilter: z4.string().optional(),
|
|
1474
|
+
appFilter: z4.string().optional(),
|
|
1475
|
+
sortField: z4.enum(["type", "date", "status", "validUntil"]).optional(),
|
|
1476
|
+
sortDirection: z4.enum(["asc", "desc"]).optional(),
|
|
1477
|
+
limit: z4.coerce.number().int().positive().max(100).optional(),
|
|
1478
|
+
cursor: z4.string().optional()
|
|
1479
|
+
});
|
|
1480
|
+
var searchTasksQuerySchema = z4.object({
|
|
1481
|
+
q: z4.string().min(1),
|
|
1482
|
+
limit: z4.coerce.number().int().positive().max(100).optional()
|
|
1483
|
+
});
|
|
1484
|
+
var assignTasksResultSchema = z4.object({
|
|
1485
|
+
taskId: z4.string(),
|
|
1486
|
+
success: z4.boolean(),
|
|
1487
|
+
message: z4.string().optional(),
|
|
1488
|
+
name: z4.string().nullable().optional(),
|
|
1489
|
+
description: z4.string().nullable().optional(),
|
|
1490
|
+
type: z4.string().nullable().optional()
|
|
1248
1491
|
});
|
|
1249
|
-
var
|
|
1250
|
-
|
|
1251
|
-
});
|
|
1252
|
-
var
|
|
1253
|
-
|
|
1254
|
-
typeFilter: z3.string().optional(),
|
|
1255
|
-
appFilter: z3.string().optional(),
|
|
1256
|
-
sortField: z3.enum(["type", "date", "status", "validUntil"]).optional(),
|
|
1257
|
-
sortDirection: z3.enum(["asc", "desc"]).optional(),
|
|
1258
|
-
limit: z3.coerce.number().int().positive().max(100).optional(),
|
|
1259
|
-
cursor: z3.string().optional()
|
|
1260
|
-
});
|
|
1261
|
-
var searchTasksQuerySchema = z3.object({
|
|
1262
|
-
q: z3.string().min(1),
|
|
1263
|
-
limit: z3.coerce.number().int().positive().max(100).optional()
|
|
1264
|
-
});
|
|
1265
|
-
var assignTasksResultSchema = z3.object({
|
|
1266
|
-
taskId: z3.string(),
|
|
1267
|
-
success: z3.boolean(),
|
|
1268
|
-
message: z3.string().optional(),
|
|
1269
|
-
name: z3.string().nullable().optional(),
|
|
1270
|
-
description: z3.string().nullable().optional(),
|
|
1271
|
-
type: z3.string().nullable().optional()
|
|
1272
|
-
});
|
|
1273
|
-
var assignTasksResponseSchema = z3.object({
|
|
1274
|
-
results: z3.array(assignTasksResultSchema)
|
|
1275
|
-
});
|
|
1276
|
-
var assignTasksBodySchema = z3.object({
|
|
1277
|
-
taskIds: z3.array(z3.string().min(1)).min(1).max(100),
|
|
1492
|
+
var assignTasksResponseSchema = z4.object({
|
|
1493
|
+
results: z4.array(assignTasksResultSchema)
|
|
1494
|
+
});
|
|
1495
|
+
var assignTasksBodySchema = z4.object({
|
|
1496
|
+
taskIds: z4.array(z4.string().min(1)).min(1).max(100),
|
|
1278
1497
|
assignTo: assignToSchema.refine(
|
|
1279
1498
|
(value) => (value.users?.length ?? 0) > 0 || (value.groups?.length ?? 0) > 0,
|
|
1280
1499
|
{ message: "assignTo needs at least one user email or group slug." }
|
|
1281
1500
|
)
|
|
1282
1501
|
});
|
|
1502
|
+
var agentAdminPlanLimitsSchema = z4.object({
|
|
1503
|
+
tasksPerDay: z4.number(),
|
|
1504
|
+
members: z4.number(),
|
|
1505
|
+
apiKeys: z4.number(),
|
|
1506
|
+
groups: z4.number(),
|
|
1507
|
+
auditLogRetention: z4.number(),
|
|
1508
|
+
rateLimitPerSecond: z4.number(),
|
|
1509
|
+
taskRetentionDays: z4.number()
|
|
1510
|
+
});
|
|
1511
|
+
var agentAdminUsageSchema = z4.object({
|
|
1512
|
+
workspace: z4.string(),
|
|
1513
|
+
planName: z4.string(),
|
|
1514
|
+
planType: z4.string(),
|
|
1515
|
+
trialState: z4.enum(["none", "active", "expired"]),
|
|
1516
|
+
daysRemaining: z4.number().nullable(),
|
|
1517
|
+
isPaidPro: z4.boolean(),
|
|
1518
|
+
subscriptionStatus: z4.string().nullable(),
|
|
1519
|
+
tasksToday: z4.number(),
|
|
1520
|
+
maxTasksPerDay: z4.number().nullable(),
|
|
1521
|
+
tasksResetAt: z4.number(),
|
|
1522
|
+
openTasks: z4.number(),
|
|
1523
|
+
totalTasks: z4.number(),
|
|
1524
|
+
seatsCurrent: z4.number(),
|
|
1525
|
+
seatsMax: z4.number().nullable(),
|
|
1526
|
+
groupsCurrent: z4.number(),
|
|
1527
|
+
groupsMax: z4.number().nullable(),
|
|
1528
|
+
apiKeysCurrent: z4.number(),
|
|
1529
|
+
apiKeysMax: z4.number().nullable(),
|
|
1530
|
+
rateLimitPerSecond: z4.number(),
|
|
1531
|
+
limits: agentAdminPlanLimitsSchema
|
|
1532
|
+
});
|
|
1283
1533
|
|
|
1284
1534
|
// src/schemas/index.ts
|
|
1285
|
-
var handlerUrlSchema2 =
|
|
1535
|
+
var handlerUrlSchema2 = z5.string().refine((url) => isAllowedHandlerUrl(url), {
|
|
1286
1536
|
message: HANDLER_URL_ERROR
|
|
1287
1537
|
});
|
|
1288
|
-
var jsonSchema7Schema2 =
|
|
1538
|
+
var jsonSchema7Schema2 = z5.custom(
|
|
1289
1539
|
(val) => typeof val === "object" && val !== null,
|
|
1290
1540
|
{ message: "Must be a valid JSON Schema object" }
|
|
1291
1541
|
);
|
|
1292
|
-
var uiSchemaSchema2 =
|
|
1542
|
+
var uiSchemaSchema2 = z5.custom((val) => typeof val === "object" && val !== null, {
|
|
1293
1543
|
message: "Must be a valid UiSchema object"
|
|
1294
1544
|
});
|
|
1295
|
-
var webhookHandlerSchema2 =
|
|
1296
|
-
type:
|
|
1545
|
+
var webhookHandlerSchema2 = z5.object({
|
|
1546
|
+
type: z5.literal("webhook"),
|
|
1297
1547
|
url: handlerUrlSchema2,
|
|
1298
|
-
headers:
|
|
1548
|
+
headers: z5.record(z5.string(), z5.string())
|
|
1299
1549
|
});
|
|
1300
1550
|
var triggerHandlerSchema2 = webhookHandlerSchema2.extend({
|
|
1301
|
-
type:
|
|
1302
|
-
tokenId:
|
|
1303
|
-
});
|
|
1304
|
-
var handlerSchema2 =
|
|
1305
|
-
var taskActionInputSchema2 =
|
|
1306
|
-
id:
|
|
1307
|
-
title:
|
|
1308
|
-
description:
|
|
1551
|
+
type: z5.literal("trigger"),
|
|
1552
|
+
tokenId: z5.string().min(1)
|
|
1553
|
+
});
|
|
1554
|
+
var handlerSchema2 = z5.discriminatedUnion("type", [webhookHandlerSchema2, triggerHandlerSchema2]);
|
|
1555
|
+
var taskActionInputSchema2 = z5.object({
|
|
1556
|
+
id: z5.string().min(1),
|
|
1557
|
+
title: z5.string().min(1),
|
|
1558
|
+
description: z5.string().optional(),
|
|
1309
1559
|
schema: jsonSchema7Schema2.optional(),
|
|
1310
1560
|
ui: uiSchemaSchema2.optional(),
|
|
1311
|
-
data:
|
|
1561
|
+
data: z5.record(z5.string(), z5.unknown()).optional()
|
|
1312
1562
|
});
|
|
1313
1563
|
var taskActionSchema2 = taskActionInputSchema2.extend({
|
|
1314
|
-
handlers:
|
|
1315
|
-
});
|
|
1316
|
-
var uiFieldSchemaSchema2 =
|
|
1317
|
-
"ui:widget":
|
|
1318
|
-
"ui:title":
|
|
1319
|
-
"ui:description":
|
|
1320
|
-
"ui:options":
|
|
1321
|
-
items:
|
|
1564
|
+
handlers: z5.array(handlerSchema2).min(1).optional()
|
|
1565
|
+
});
|
|
1566
|
+
var uiFieldSchemaSchema2 = z5.object({
|
|
1567
|
+
"ui:widget": z5.string().optional(),
|
|
1568
|
+
"ui:title": z5.string().optional(),
|
|
1569
|
+
"ui:description": z5.string().optional(),
|
|
1570
|
+
"ui:options": z5.record(z5.string(), z5.unknown()).optional(),
|
|
1571
|
+
items: z5.lazy(() => z5.record(z5.string(), uiFieldSchemaSchema2)).optional()
|
|
1322
1572
|
}).passthrough();
|
|
1323
|
-
var contextUiSchema2 =
|
|
1324
|
-
var contextDataSchema2 =
|
|
1325
|
-
data:
|
|
1573
|
+
var contextUiSchema2 = z5.record(z5.string(), uiFieldSchemaSchema2).optional();
|
|
1574
|
+
var contextDataSchema2 = z5.object({
|
|
1575
|
+
data: z5.record(z5.string(), z5.unknown()),
|
|
1326
1576
|
ui: contextUiSchema2
|
|
1327
1577
|
}).optional();
|
|
1328
1578
|
var TASK_CONTEXT_FORMAT_VERSION2 = 2;
|
|
1329
|
-
var taskContextObjectBaseSchema2 =
|
|
1330
|
-
app:
|
|
1331
|
-
type:
|
|
1332
|
-
name:
|
|
1333
|
-
description:
|
|
1334
|
-
validUntil:
|
|
1579
|
+
var taskContextObjectBaseSchema2 = z5.object({
|
|
1580
|
+
app: z5.string().min(1).optional(),
|
|
1581
|
+
type: z5.string().min(1),
|
|
1582
|
+
name: z5.string().min(1),
|
|
1583
|
+
description: z5.string().optional(),
|
|
1584
|
+
validUntil: z5.string().optional(),
|
|
1335
1585
|
context: contextDataSchema2,
|
|
1336
|
-
contextVersion:
|
|
1586
|
+
contextVersion: z5.literal(2).optional(),
|
|
1337
1587
|
/** @deprecated Use `contextVersion`. Accepted on ingest only. */
|
|
1338
|
-
version:
|
|
1339
|
-
actions:
|
|
1588
|
+
version: z5.literal(2).optional(),
|
|
1589
|
+
actions: z5.array(taskActionSchema2).min(1, "At least one action is required")
|
|
1340
1590
|
});
|
|
1341
1591
|
function normalizeTaskContextVersion2(data) {
|
|
1342
1592
|
const { version: legacyVersion, contextVersion, ...rest } = data;
|
|
@@ -1352,7 +1602,7 @@ function refineContextPublicUrls2(data, ctx) {
|
|
|
1352
1602
|
const error = validateContextPublicUrls(data.context);
|
|
1353
1603
|
if (error) {
|
|
1354
1604
|
ctx.addIssue({
|
|
1355
|
-
code:
|
|
1605
|
+
code: z5.ZodIssueCode.custom,
|
|
1356
1606
|
message: error,
|
|
1357
1607
|
path: ["context"]
|
|
1358
1608
|
});
|
|
@@ -1361,9 +1611,9 @@ function refineContextPublicUrls2(data, ctx) {
|
|
|
1361
1611
|
var taskContextSchema2 = taskContextObjectSchema2.superRefine(
|
|
1362
1612
|
refineContextPublicUrls2
|
|
1363
1613
|
);
|
|
1364
|
-
var assignToSchema2 =
|
|
1365
|
-
users:
|
|
1366
|
-
groups:
|
|
1614
|
+
var assignToSchema2 = z5.object({
|
|
1615
|
+
users: z5.array(z5.string().email()).optional(),
|
|
1616
|
+
groups: z5.array(z5.string().min(1)).optional()
|
|
1367
1617
|
}).refine(
|
|
1368
1618
|
(data) => {
|
|
1369
1619
|
const groups = data.groups ?? [];
|
|
@@ -1374,7 +1624,7 @@ var assignToSchema2 = z4.object({
|
|
|
1374
1624
|
},
|
|
1375
1625
|
{ message: 'Cannot combine "all" with other group slugs' }
|
|
1376
1626
|
);
|
|
1377
|
-
var threadUpdateMessageSchema2 =
|
|
1627
|
+
var threadUpdateMessageSchema2 = z5.string().min(1).max(500);
|
|
1378
1628
|
var threadUpdateStatuses2 = [
|
|
1379
1629
|
"info",
|
|
1380
1630
|
"queued",
|
|
@@ -1384,15 +1634,15 @@ var threadUpdateStatuses2 = [
|
|
|
1384
1634
|
"failed",
|
|
1385
1635
|
"cancelled"
|
|
1386
1636
|
];
|
|
1387
|
-
var threadUpdateStatusSchema2 =
|
|
1388
|
-
var threadUpdateInputSchema2 =
|
|
1637
|
+
var threadUpdateStatusSchema2 = z5.enum(threadUpdateStatuses2);
|
|
1638
|
+
var threadUpdateInputSchema2 = z5.object({
|
|
1389
1639
|
message: threadUpdateMessageSchema2,
|
|
1390
1640
|
status: threadUpdateStatusSchema2.optional()
|
|
1391
1641
|
});
|
|
1392
1642
|
var taskPriorities2 = ["low", "normal", "high", "urgent"];
|
|
1393
|
-
var taskPrioritySchema2 =
|
|
1394
|
-
var agentTelemetrySchema2 =
|
|
1395
|
-
version:
|
|
1643
|
+
var taskPrioritySchema2 = z5.enum(taskPriorities2);
|
|
1644
|
+
var agentTelemetrySchema2 = z5.object({
|
|
1645
|
+
version: z5.string().min(1)
|
|
1396
1646
|
});
|
|
1397
1647
|
var createTaskBodySchema2 = taskContextObjectBaseSchema2.extend({
|
|
1398
1648
|
assignTo: assignToSchema2.optional(),
|
|
@@ -1400,7 +1650,7 @@ var createTaskBodySchema2 = taskContextObjectBaseSchema2.extend({
|
|
|
1400
1650
|
* Groups related tasks together. When omitted, the server generates one and
|
|
1401
1651
|
* returns it so the caller can reuse it on later tasks in the same thread.
|
|
1402
1652
|
*/
|
|
1403
|
-
threadId:
|
|
1653
|
+
threadId: z5.string().min(1).optional(),
|
|
1404
1654
|
/**
|
|
1405
1655
|
* Optional thread priority. When set, applies to the whole thread and
|
|
1406
1656
|
* overwrites any previous priority. Omit on later tasks to leave unchanged.
|
|
@@ -1435,7 +1685,7 @@ var HANDLER_RETRY_DELAYS_MS = [
|
|
|
1435
1685
|
var HANDLER_MAX_ATTEMPTS = HANDLER_RETRY_DELAYS_MS.length + 1;
|
|
1436
1686
|
|
|
1437
1687
|
// ../core/src/attribution/index.ts
|
|
1438
|
-
import { z as
|
|
1688
|
+
import { z as z6 } from "zod";
|
|
1439
1689
|
|
|
1440
1690
|
// ../core/src/app-url.ts
|
|
1441
1691
|
var PRODUCTION_APP_URL = "https://app.robotrock.io";
|
|
@@ -1462,16 +1712,16 @@ function getRobotRockApiBaseUrl() {
|
|
|
1462
1712
|
|
|
1463
1713
|
// ../core/src/attribution/index.ts
|
|
1464
1714
|
var ATTRIBUTION_COOKIE_MAX_AGE = 60 * 60 * 24 * 90;
|
|
1465
|
-
var attributionSchema =
|
|
1466
|
-
utmSource:
|
|
1467
|
-
utmMedium:
|
|
1468
|
-
utmCampaign:
|
|
1469
|
-
utmContent:
|
|
1470
|
-
utmTerm:
|
|
1471
|
-
gclid:
|
|
1472
|
-
landingUrl:
|
|
1473
|
-
referrer:
|
|
1474
|
-
capturedAt:
|
|
1715
|
+
var attributionSchema = z6.object({
|
|
1716
|
+
utmSource: z6.string().optional(),
|
|
1717
|
+
utmMedium: z6.string().optional(),
|
|
1718
|
+
utmCampaign: z6.string().optional(),
|
|
1719
|
+
utmContent: z6.string().optional(),
|
|
1720
|
+
utmTerm: z6.string().optional(),
|
|
1721
|
+
gclid: z6.string().optional(),
|
|
1722
|
+
landingUrl: z6.string().optional(),
|
|
1723
|
+
referrer: z6.string().optional(),
|
|
1724
|
+
capturedAt: z6.number()
|
|
1475
1725
|
});
|
|
1476
1726
|
|
|
1477
1727
|
// src/approval-result.ts
|
|
@@ -1583,7 +1833,11 @@ function resolveRobotRockAuthConfig(overrides) {
|
|
|
1583
1833
|
"RobotRock auth is required. Set ROBOTROCK_API_KEY, ROBOTROCK_AGENT_SERVICE_TOKEN with tenant context, or pass auth when creating the client."
|
|
1584
1834
|
);
|
|
1585
1835
|
}
|
|
1586
|
-
return {
|
|
1836
|
+
return {
|
|
1837
|
+
kind: "apiKey",
|
|
1838
|
+
apiKey,
|
|
1839
|
+
...overrides?.actingUserId?.trim() ? { actingUserId: overrides.actingUserId.trim() } : {}
|
|
1840
|
+
};
|
|
1587
1841
|
}
|
|
1588
1842
|
|
|
1589
1843
|
// src/chat-correlation.ts
|
|
@@ -1788,6 +2042,51 @@ function createChatsApi(config) {
|
|
|
1788
2042
|
data
|
|
1789
2043
|
);
|
|
1790
2044
|
}
|
|
2045
|
+
},
|
|
2046
|
+
async uploadImage(input) {
|
|
2047
|
+
const validation = agentChatUploadImageBodySchema.safeParse(input);
|
|
2048
|
+
if (!validation.success) {
|
|
2049
|
+
throw new RobotRockError(
|
|
2050
|
+
`Invalid image upload: ${validation.error.issues[0]?.message}`,
|
|
2051
|
+
400,
|
|
2052
|
+
validation.error.issues
|
|
2053
|
+
);
|
|
2054
|
+
}
|
|
2055
|
+
const response = await fetch(`${config.baseUrl}/agent-chats/images`, {
|
|
2056
|
+
method: "POST",
|
|
2057
|
+
headers: headers(),
|
|
2058
|
+
body: JSON.stringify(validation.data)
|
|
2059
|
+
});
|
|
2060
|
+
const data = await parseResponseBody(response);
|
|
2061
|
+
if (!response.ok) {
|
|
2062
|
+
throw new RobotRockError(
|
|
2063
|
+
getErrorMessage(data, "Failed to upload chat image"),
|
|
2064
|
+
response.status,
|
|
2065
|
+
data
|
|
2066
|
+
);
|
|
2067
|
+
}
|
|
2068
|
+
const uploaded = data;
|
|
2069
|
+
if (typeof uploaded.storageId !== "string" || typeof uploaded.url !== "string" || typeof uploaded.mediaType !== "string") {
|
|
2070
|
+
throw new RobotRockError(
|
|
2071
|
+
"Image upload returned an invalid response",
|
|
2072
|
+
500,
|
|
2073
|
+
data
|
|
2074
|
+
);
|
|
2075
|
+
}
|
|
2076
|
+
return {
|
|
2077
|
+
storageId: uploaded.storageId,
|
|
2078
|
+
url: uploaded.url,
|
|
2079
|
+
mediaType: uploaded.mediaType,
|
|
2080
|
+
...typeof uploaded.chatId === "string" ? { chatId: uploaded.chatId } : {},
|
|
2081
|
+
...typeof uploaded.publicTaskId === "string" ? { publicTaskId: uploaded.publicTaskId } : {},
|
|
2082
|
+
...typeof uploaded.filename === "string" ? { filename: uploaded.filename } : {},
|
|
2083
|
+
...typeof uploaded.description === "string" ? { description: uploaded.description } : {},
|
|
2084
|
+
...Array.isArray(uploaded.tags) ? {
|
|
2085
|
+
tags: uploaded.tags.filter(
|
|
2086
|
+
(tag) => typeof tag === "string"
|
|
2087
|
+
)
|
|
2088
|
+
} : {}
|
|
2089
|
+
};
|
|
1791
2090
|
}
|
|
1792
2091
|
};
|
|
1793
2092
|
}
|
|
@@ -1857,6 +2156,7 @@ var RobotRock = class {
|
|
|
1857
2156
|
}
|
|
1858
2157
|
this.auth = resolveRobotRockAuthConfig({
|
|
1859
2158
|
...apiKey ? { apiKey } : {},
|
|
2159
|
+
...config.actingUserId ? { actingUserId: config.actingUserId } : {},
|
|
1860
2160
|
...agentService ? { agentService } : {}
|
|
1861
2161
|
});
|
|
1862
2162
|
this.chatCorrelation = config.chatCorrelation;
|
|
@@ -2186,6 +2486,7 @@ function tryCreateBoundRobotRockClient(ctx) {
|
|
|
2186
2486
|
if (apiKey) {
|
|
2187
2487
|
return createClient({
|
|
2188
2488
|
apiKey,
|
|
2489
|
+
...caller?.userId ? { actingUserId: caller.userId } : {},
|
|
2189
2490
|
baseUrl: process.env.ROBOTROCK_BASE_URL?.trim(),
|
|
2190
2491
|
chatCorrelation
|
|
2191
2492
|
});
|
|
@@ -2615,6 +2916,9 @@ async function agentAdminFetch(config, path, init) {
|
|
|
2615
2916
|
}
|
|
2616
2917
|
function createAgentAdminApi(config) {
|
|
2617
2918
|
return {
|
|
2919
|
+
usage: {
|
|
2920
|
+
get: () => agentAdminFetch(config, "/usage")
|
|
2921
|
+
},
|
|
2618
2922
|
members: {
|
|
2619
2923
|
list: () => agentAdminFetch(config, "/members"),
|
|
2620
2924
|
get: (memberRef) => agentAdminFetch(config, `/members/${encodeURIComponent(memberRef)}`),
|