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