@inkeep/agents-core 0.66.0 → 0.67.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/dist/auth/auth-schema.d.ts +86 -86
- package/dist/auth/auth-validation-schemas.d.ts +154 -154
- package/dist/auth/permissions.d.ts +9 -9
- package/dist/client-exports.d.ts +2 -2
- package/dist/client-exports.js +2 -2
- package/dist/constants/otel-attributes.d.ts +2 -0
- package/dist/constants/otel-attributes.js +2 -0
- package/dist/data-access/index.d.ts +2 -2
- package/dist/data-access/index.js +2 -2
- package/dist/data-access/manage/agentFull.js +23 -3
- package/dist/data-access/manage/agents.d.ts +27 -27
- package/dist/data-access/manage/agents.js +12 -1
- package/dist/data-access/manage/artifactComponents.d.ts +4 -4
- package/dist/data-access/manage/contextConfigs.d.ts +12 -12
- package/dist/data-access/manage/dataComponents.d.ts +2 -2
- package/dist/data-access/manage/functionTools.d.ts +6 -6
- package/dist/data-access/manage/skills.d.ts +7 -7
- package/dist/data-access/manage/subAgentExternalAgentRelations.d.ts +12 -12
- package/dist/data-access/manage/subAgentRelations.d.ts +10 -10
- package/dist/data-access/manage/subAgentTeamAgentRelations.d.ts +12 -12
- package/dist/data-access/manage/subAgents.d.ts +9 -9
- package/dist/data-access/manage/tools.d.ts +12 -12
- package/dist/data-access/manage/triggerCleanup.js +6 -1
- package/dist/data-access/manage/triggers.d.ts +64 -5
- package/dist/data-access/manage/triggers.js +88 -3
- package/dist/data-access/runtime/apiKeys.d.ts +8 -8
- package/dist/data-access/runtime/apps.d.ts +6 -6
- package/dist/data-access/runtime/conversations.d.ts +24 -24
- package/dist/data-access/runtime/feedback.d.ts +2 -2
- package/dist/data-access/runtime/messages.d.ts +9 -9
- package/dist/data-access/runtime/scheduledTriggerUsers.d.ts +1 -1
- package/dist/data-access/runtime/tasks.d.ts +5 -5
- package/dist/data-access/runtime/triggerInvocations.d.ts +2 -0
- package/dist/db/manage/dolt-safe-jsonb.d.ts +2 -2
- package/dist/db/manage/manage-schema.d.ts +496 -360
- package/dist/db/manage/manage-schema.js +43 -2
- package/dist/db/runtime/runtime-schema.d.ts +409 -371
- package/dist/db/runtime/runtime-schema.js +4 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.js +4 -4
- package/dist/utils/error.d.ts +51 -51
- package/dist/utils/signature-validation.d.ts +2 -2
- package/dist/utils/signature-validation.js +2 -2
- package/dist/validation/drizzle-schema-helpers.d.ts +3 -3
- package/dist/validation/index.d.ts +2 -2
- package/dist/validation/index.js +2 -2
- package/dist/validation/schemas/skills.d.ts +46 -46
- package/dist/validation/schemas.d.ts +2193 -1999
- package/dist/validation/schemas.js +35 -13
- package/drizzle/manage/0018_gorgeous_captain_america.sql +14 -0
- package/drizzle/manage/meta/0018_snapshot.json +3884 -0
- package/drizzle/manage/meta/_journal.json +7 -0
- package/drizzle/runtime/0035_many_steel_serpent.sql +3 -0
- package/drizzle/runtime/meta/0035_snapshot.json +5321 -0
- package/drizzle/runtime/meta/_journal.json +7 -0
- package/package.json +1 -1
|
@@ -12,11 +12,11 @@ declare const getSubAgentTeamAgentRelationById: (db: AgentsManageDatabaseClient)
|
|
|
12
12
|
id: string;
|
|
13
13
|
createdAt: string;
|
|
14
14
|
updatedAt: string;
|
|
15
|
-
headers: Record<string, string> | null;
|
|
16
|
-
agentId: string;
|
|
17
15
|
projectId: string;
|
|
18
16
|
tenantId: string;
|
|
17
|
+
agentId: string;
|
|
19
18
|
subAgentId: string;
|
|
19
|
+
headers: Record<string, string> | null;
|
|
20
20
|
targetAgentId: string;
|
|
21
21
|
} | undefined>;
|
|
22
22
|
declare const listSubAgentTeamAgentRelations: (db: AgentsManageDatabaseClient) => (params: {
|
|
@@ -47,11 +47,11 @@ declare const getSubAgentTeamAgentRelations: (db: AgentsManageDatabaseClient) =>
|
|
|
47
47
|
id: string;
|
|
48
48
|
createdAt: string;
|
|
49
49
|
updatedAt: string;
|
|
50
|
-
headers: Record<string, string> | null;
|
|
51
|
-
agentId: string;
|
|
52
50
|
projectId: string;
|
|
53
51
|
tenantId: string;
|
|
52
|
+
agentId: string;
|
|
54
53
|
subAgentId: string;
|
|
54
|
+
headers: Record<string, string> | null;
|
|
55
55
|
targetAgentId: string;
|
|
56
56
|
}[]>;
|
|
57
57
|
declare const getSubAgentTeamAgentRelationsByAgent: (db: AgentsManageDatabaseClient) => (params: {
|
|
@@ -60,11 +60,11 @@ declare const getSubAgentTeamAgentRelationsByAgent: (db: AgentsManageDatabaseCli
|
|
|
60
60
|
id: string;
|
|
61
61
|
createdAt: string;
|
|
62
62
|
updatedAt: string;
|
|
63
|
-
headers: Record<string, string> | null;
|
|
64
|
-
agentId: string;
|
|
65
63
|
projectId: string;
|
|
66
64
|
tenantId: string;
|
|
65
|
+
agentId: string;
|
|
67
66
|
subAgentId: string;
|
|
67
|
+
headers: Record<string, string> | null;
|
|
68
68
|
targetAgentId: string;
|
|
69
69
|
}[]>;
|
|
70
70
|
declare const getSubAgentTeamAgentRelationsByTeamAgent: (db: AgentsManageDatabaseClient) => (params: {
|
|
@@ -225,11 +225,11 @@ declare const createSubAgentTeamAgentRelation: (db: AgentsManageDatabaseClient)
|
|
|
225
225
|
id: string;
|
|
226
226
|
createdAt: string;
|
|
227
227
|
updatedAt: string;
|
|
228
|
-
headers: Record<string, string> | null;
|
|
229
|
-
agentId: string;
|
|
230
228
|
projectId: string;
|
|
231
229
|
tenantId: string;
|
|
230
|
+
agentId: string;
|
|
232
231
|
subAgentId: string;
|
|
232
|
+
headers: Record<string, string> | null;
|
|
233
233
|
targetAgentId: string;
|
|
234
234
|
}>;
|
|
235
235
|
/**
|
|
@@ -242,11 +242,11 @@ declare const getSubAgentTeamAgentRelationByParams: (db: AgentsManageDatabaseCli
|
|
|
242
242
|
id: string;
|
|
243
243
|
createdAt: string;
|
|
244
244
|
updatedAt: string;
|
|
245
|
-
headers: Record<string, string> | null;
|
|
246
|
-
agentId: string;
|
|
247
245
|
projectId: string;
|
|
248
246
|
tenantId: string;
|
|
247
|
+
agentId: string;
|
|
249
248
|
subAgentId: string;
|
|
249
|
+
headers: Record<string, string> | null;
|
|
250
250
|
targetAgentId: string;
|
|
251
251
|
} | undefined>;
|
|
252
252
|
/**
|
|
@@ -263,11 +263,11 @@ declare const upsertSubAgentTeamAgentRelation: (db: AgentsManageDatabaseClient)
|
|
|
263
263
|
id: string;
|
|
264
264
|
createdAt: string;
|
|
265
265
|
updatedAt: string;
|
|
266
|
-
headers: Record<string, string> | null;
|
|
267
|
-
agentId: string;
|
|
268
266
|
projectId: string;
|
|
269
267
|
tenantId: string;
|
|
268
|
+
agentId: string;
|
|
270
269
|
subAgentId: string;
|
|
270
|
+
headers: Record<string, string> | null;
|
|
271
271
|
targetAgentId: string;
|
|
272
272
|
}>;
|
|
273
273
|
declare const updateSubAgentTeamAgentRelation: (db: AgentsManageDatabaseClient) => (params: {
|
|
@@ -9,12 +9,11 @@ declare const getSubAgentById: (db: AgentsManageDatabaseClient) => (params: {
|
|
|
9
9
|
scopes: AgentScopeConfig;
|
|
10
10
|
subAgentId: string;
|
|
11
11
|
}) => Promise<{
|
|
12
|
+
description: string | null;
|
|
12
13
|
id: string;
|
|
13
14
|
name: string;
|
|
14
15
|
createdAt: string;
|
|
15
16
|
updatedAt: string;
|
|
16
|
-
description: string | null;
|
|
17
|
-
agentId: string;
|
|
18
17
|
projectId: string;
|
|
19
18
|
tenantId: string;
|
|
20
19
|
models: {
|
|
@@ -37,21 +36,21 @@ declare const getSubAgentById: (db: AgentsManageDatabaseClient) => (params: {
|
|
|
37
36
|
allowedProviders?: string[] | undefined;
|
|
38
37
|
} | undefined;
|
|
39
38
|
} | null;
|
|
40
|
-
prompt: string | null;
|
|
41
39
|
stopWhen: {
|
|
42
40
|
stepCountIs?: number | undefined;
|
|
43
41
|
} | null;
|
|
42
|
+
agentId: string;
|
|
43
|
+
prompt: string | null;
|
|
44
44
|
conversationHistoryConfig: ConversationHistoryConfig | null;
|
|
45
45
|
} | undefined>;
|
|
46
46
|
declare const listSubAgents: (db: AgentsManageDatabaseClient) => (params: {
|
|
47
47
|
scopes: AgentScopeConfig;
|
|
48
48
|
}) => Promise<{
|
|
49
|
+
description: string | null;
|
|
49
50
|
id: string;
|
|
50
51
|
name: string;
|
|
51
52
|
createdAt: string;
|
|
52
53
|
updatedAt: string;
|
|
53
|
-
description: string | null;
|
|
54
|
-
agentId: string;
|
|
55
54
|
projectId: string;
|
|
56
55
|
tenantId: string;
|
|
57
56
|
models: {
|
|
@@ -74,10 +73,11 @@ declare const listSubAgents: (db: AgentsManageDatabaseClient) => (params: {
|
|
|
74
73
|
allowedProviders?: string[] | undefined;
|
|
75
74
|
} | undefined;
|
|
76
75
|
} | null;
|
|
77
|
-
prompt: string | null;
|
|
78
76
|
stopWhen: {
|
|
79
77
|
stepCountIs?: number | undefined;
|
|
80
78
|
} | null;
|
|
79
|
+
agentId: string;
|
|
80
|
+
prompt: string | null;
|
|
81
81
|
conversationHistoryConfig: ConversationHistoryConfig | null;
|
|
82
82
|
}[]>;
|
|
83
83
|
declare const listSubAgentsPaginated: (db: AgentsManageDatabaseClient) => (params: {
|
|
@@ -127,12 +127,11 @@ declare const listSubAgentsPaginated: (db: AgentsManageDatabaseClient) => (param
|
|
|
127
127
|
};
|
|
128
128
|
}>;
|
|
129
129
|
declare const createSubAgent: (db: AgentsManageDatabaseClient) => (params: SubAgentInsert) => Promise<{
|
|
130
|
+
description: string | null;
|
|
130
131
|
id: string;
|
|
131
132
|
name: string;
|
|
132
133
|
createdAt: string;
|
|
133
134
|
updatedAt: string;
|
|
134
|
-
description: string | null;
|
|
135
|
-
agentId: string;
|
|
136
135
|
projectId: string;
|
|
137
136
|
tenantId: string;
|
|
138
137
|
models: {
|
|
@@ -155,10 +154,11 @@ declare const createSubAgent: (db: AgentsManageDatabaseClient) => (params: SubAg
|
|
|
155
154
|
allowedProviders?: string[] | undefined;
|
|
156
155
|
} | undefined;
|
|
157
156
|
} | null;
|
|
158
|
-
prompt: string | null;
|
|
159
157
|
stopWhen: {
|
|
160
158
|
stepCountIs?: number | undefined;
|
|
161
159
|
} | null;
|
|
160
|
+
agentId: string;
|
|
161
|
+
prompt: string | null;
|
|
162
162
|
conversationHistoryConfig: ConversationHistoryConfig | null;
|
|
163
163
|
}>;
|
|
164
164
|
declare const updateSubAgent: (db: AgentsManageDatabaseClient) => (params: {
|
|
@@ -20,14 +20,14 @@ declare const getToolById: (db: AgentsManageDatabaseClient) => (params: {
|
|
|
20
20
|
scopes: ProjectScopeConfig;
|
|
21
21
|
toolId: string;
|
|
22
22
|
}) => Promise<{
|
|
23
|
+
description: string | null;
|
|
23
24
|
id: string;
|
|
24
25
|
name: string;
|
|
25
26
|
createdAt: string;
|
|
26
27
|
updatedAt: string;
|
|
27
|
-
description: string | null;
|
|
28
|
-
headers: Record<string, string> | null;
|
|
29
28
|
projectId: string;
|
|
30
29
|
tenantId: string;
|
|
30
|
+
headers: Record<string, string> | null;
|
|
31
31
|
config: {
|
|
32
32
|
type: "mcp";
|
|
33
33
|
mcp: ToolMcpConfig;
|
|
@@ -78,14 +78,14 @@ declare const listTools: (db: AgentsManageDatabaseClient) => (params: {
|
|
|
78
78
|
};
|
|
79
79
|
}>;
|
|
80
80
|
declare const createTool: (db: AgentsManageDatabaseClient) => (params: ToolInsert) => Promise<{
|
|
81
|
+
description: string | null;
|
|
81
82
|
id: string;
|
|
82
83
|
name: string;
|
|
83
84
|
createdAt: string;
|
|
84
85
|
updatedAt: string;
|
|
85
|
-
description: string | null;
|
|
86
|
-
headers: Record<string, string> | null;
|
|
87
86
|
projectId: string;
|
|
88
87
|
tenantId: string;
|
|
88
|
+
headers: Record<string, string> | null;
|
|
89
89
|
config: {
|
|
90
90
|
type: "mcp";
|
|
91
91
|
mcp: ToolMcpConfig;
|
|
@@ -138,12 +138,12 @@ declare const addToolToAgent: (db: AgentsManageDatabaseClient) => (params: {
|
|
|
138
138
|
id: string;
|
|
139
139
|
createdAt: string;
|
|
140
140
|
updatedAt: string;
|
|
141
|
-
headers: Record<string, string> | null;
|
|
142
|
-
agentId: string;
|
|
143
141
|
projectId: string;
|
|
144
142
|
tenantId: string;
|
|
143
|
+
agentId: string;
|
|
145
144
|
subAgentId: string;
|
|
146
145
|
toolId: string;
|
|
146
|
+
headers: Record<string, string> | null;
|
|
147
147
|
toolPolicies: Record<string, {
|
|
148
148
|
needsApproval?: boolean;
|
|
149
149
|
}> | null;
|
|
@@ -157,12 +157,12 @@ declare const removeToolFromAgent: (db: AgentsManageDatabaseClient) => (params:
|
|
|
157
157
|
id: string;
|
|
158
158
|
createdAt: string;
|
|
159
159
|
updatedAt: string;
|
|
160
|
-
headers: Record<string, string> | null;
|
|
161
|
-
agentId: string;
|
|
162
160
|
projectId: string;
|
|
163
161
|
tenantId: string;
|
|
162
|
+
agentId: string;
|
|
164
163
|
subAgentId: string;
|
|
165
164
|
toolId: string;
|
|
165
|
+
headers: Record<string, string> | null;
|
|
166
166
|
toolPolicies: Record<string, {
|
|
167
167
|
needsApproval?: boolean;
|
|
168
168
|
}> | null;
|
|
@@ -185,12 +185,12 @@ declare const upsertSubAgentToolRelation: (db: AgentsManageDatabaseClient) => (p
|
|
|
185
185
|
id: string;
|
|
186
186
|
createdAt: string;
|
|
187
187
|
updatedAt: string;
|
|
188
|
-
headers: Record<string, string> | null;
|
|
189
|
-
agentId: string;
|
|
190
188
|
projectId: string;
|
|
191
189
|
tenantId: string;
|
|
190
|
+
agentId: string;
|
|
192
191
|
subAgentId: string;
|
|
193
192
|
toolId: string;
|
|
193
|
+
headers: Record<string, string> | null;
|
|
194
194
|
toolPolicies: Record<string, {
|
|
195
195
|
needsApproval?: boolean;
|
|
196
196
|
}> | null;
|
|
@@ -202,14 +202,14 @@ declare const upsertSubAgentToolRelation: (db: AgentsManageDatabaseClient) => (p
|
|
|
202
202
|
declare const upsertTool: (db: AgentsManageDatabaseClient) => (params: {
|
|
203
203
|
data: ToolInsert;
|
|
204
204
|
}) => Promise<{
|
|
205
|
+
description: string | null;
|
|
205
206
|
id: string;
|
|
206
207
|
name: string;
|
|
207
208
|
createdAt: string;
|
|
208
209
|
updatedAt: string;
|
|
209
|
-
description: string | null;
|
|
210
|
-
headers: Record<string, string> | null;
|
|
211
210
|
projectId: string;
|
|
212
211
|
tenantId: string;
|
|
212
|
+
headers: Record<string, string> | null;
|
|
213
213
|
config: {
|
|
214
214
|
type: "mcp";
|
|
215
215
|
mcp: ToolMcpConfig;
|
|
@@ -2,7 +2,7 @@ import { manage_schema_exports } from "../../db/manage/manage-schema.js";
|
|
|
2
2
|
import { getLogger } from "../../utils/logger.js";
|
|
3
3
|
import { resolveProjectMainRefs } from "../../dolt/ref-helpers.js";
|
|
4
4
|
import { listProjectsMetadata } from "../runtime/projects.js";
|
|
5
|
-
import { deleteTriggersByRunAsUserId } from "./triggers.js";
|
|
5
|
+
import { deleteTriggersByRunAsUserId, removeUserFromProjectTriggerUsers } from "./triggers.js";
|
|
6
6
|
import { deleteScheduledTriggersByRunAsUserId } from "../runtime/scheduledTriggers.js";
|
|
7
7
|
import { withRef } from "../../dolt/ref-scope.js";
|
|
8
8
|
import { drizzle } from "drizzle-orm/node-postgres";
|
|
@@ -42,6 +42,11 @@ async function cleanupUserTriggers(params) {
|
|
|
42
42
|
projectId,
|
|
43
43
|
runAsUserId: userId
|
|
44
44
|
});
|
|
45
|
+
await removeUserFromProjectTriggerUsers(db)({
|
|
46
|
+
tenantId,
|
|
47
|
+
projectId,
|
|
48
|
+
userId
|
|
49
|
+
});
|
|
45
50
|
}, {
|
|
46
51
|
commit: true,
|
|
47
52
|
commitMessage: `Remove triggers for departing user ${userId}`
|
|
@@ -37,16 +37,16 @@ declare const listTriggersPaginated: (db: AgentsManageDatabaseClient) => (params
|
|
|
37
37
|
authentication: unknown;
|
|
38
38
|
signingSecretCredentialReferenceId: string | null;
|
|
39
39
|
signatureVerification: {
|
|
40
|
-
algorithm: "
|
|
41
|
-
encoding: "
|
|
40
|
+
algorithm: "sha256" | "sha512" | "sha384" | "sha1" | "md5";
|
|
41
|
+
encoding: "hex" | "base64";
|
|
42
42
|
signature: {
|
|
43
|
-
source: "query" | "
|
|
43
|
+
source: "query" | "header" | "body";
|
|
44
44
|
key: string;
|
|
45
45
|
prefix?: string | undefined;
|
|
46
46
|
regex?: string | undefined;
|
|
47
47
|
};
|
|
48
48
|
signedComponents: {
|
|
49
|
-
source: "literal" | "
|
|
49
|
+
source: "literal" | "header" | "body";
|
|
50
50
|
required: boolean;
|
|
51
51
|
key?: string | undefined;
|
|
52
52
|
value?: string | undefined;
|
|
@@ -63,6 +63,7 @@ declare const listTriggersPaginated: (db: AgentsManageDatabaseClient) => (params
|
|
|
63
63
|
} | undefined;
|
|
64
64
|
} | null;
|
|
65
65
|
runAsUserId: string | null;
|
|
66
|
+
dispatchDelayMs: number | null;
|
|
66
67
|
createdBy: string | null;
|
|
67
68
|
name: string;
|
|
68
69
|
description: string | null;
|
|
@@ -82,6 +83,10 @@ declare const listTriggersPaginated: (db: AgentsManageDatabaseClient) => (params
|
|
|
82
83
|
* Create a new trigger (agent-scoped)
|
|
83
84
|
*/
|
|
84
85
|
declare const createTrigger: (db: AgentsManageDatabaseClient) => (params: TriggerInsert) => Promise<TriggerSelect>;
|
|
86
|
+
declare const createTriggerWithUsers: (db: AgentsManageDatabaseClient) => (params: {
|
|
87
|
+
trigger: TriggerInsert;
|
|
88
|
+
userIds: string[];
|
|
89
|
+
}) => Promise<TriggerSelect>;
|
|
85
90
|
/**
|
|
86
91
|
* Update a trigger (agent-scoped)
|
|
87
92
|
*/
|
|
@@ -106,6 +111,60 @@ declare const deleteTriggersByRunAsUserId: (db: AgentsManageDatabaseClient) => (
|
|
|
106
111
|
projectId: string;
|
|
107
112
|
runAsUserId: string;
|
|
108
113
|
}) => Promise<void>;
|
|
114
|
+
declare const getTriggerUsers: (db: AgentsManageDatabaseClient) => (params: {
|
|
115
|
+
scopes: AgentScopeConfig;
|
|
116
|
+
triggerId: string;
|
|
117
|
+
}) => Promise<{
|
|
118
|
+
tenantId: string;
|
|
119
|
+
projectId: string;
|
|
120
|
+
agentId: string;
|
|
121
|
+
triggerId: string;
|
|
122
|
+
userId: string;
|
|
123
|
+
createdAt: string;
|
|
124
|
+
}[]>;
|
|
125
|
+
declare const getTriggerUsersBatch: (db: AgentsManageDatabaseClient) => (params: {
|
|
126
|
+
scopes: AgentScopeConfig;
|
|
127
|
+
triggerIds: string[];
|
|
128
|
+
}) => Promise<Map<string, string[]>>;
|
|
129
|
+
declare const createTriggerUser: (db: AgentsManageDatabaseClient) => (params: {
|
|
130
|
+
scopes: AgentScopeConfig;
|
|
131
|
+
triggerId: string;
|
|
132
|
+
userId: string;
|
|
133
|
+
}) => Promise<{
|
|
134
|
+
createdAt: string;
|
|
135
|
+
projectId: string;
|
|
136
|
+
tenantId: string;
|
|
137
|
+
agentId: string;
|
|
138
|
+
userId: string;
|
|
139
|
+
triggerId: string;
|
|
140
|
+
}>;
|
|
141
|
+
declare const deleteTriggerUser: (db: AgentsManageDatabaseClient) => (params: {
|
|
142
|
+
scopes: AgentScopeConfig;
|
|
143
|
+
triggerId: string;
|
|
144
|
+
userId: string;
|
|
145
|
+
}) => Promise<void>;
|
|
146
|
+
declare const setTriggerUsers: (db: AgentsManageDatabaseClient) => (params: {
|
|
147
|
+
scopes: AgentScopeConfig;
|
|
148
|
+
triggerId: string;
|
|
149
|
+
userIds: string[];
|
|
150
|
+
}) => Promise<void>;
|
|
151
|
+
declare const getTriggerUserCount: (db: AgentsManageDatabaseClient) => (params: {
|
|
152
|
+
scopes: AgentScopeConfig;
|
|
153
|
+
triggerId: string;
|
|
154
|
+
}) => Promise<number>;
|
|
155
|
+
declare const getWebhookTriggerIdsWithUser: (db: AgentsManageDatabaseClient) => (params: {
|
|
156
|
+
tenantId: string;
|
|
157
|
+
projectId: string;
|
|
158
|
+
userId: string;
|
|
159
|
+
}) => Promise<{
|
|
160
|
+
agentId: string;
|
|
161
|
+
id: string;
|
|
162
|
+
}[]>;
|
|
163
|
+
declare const removeUserFromProjectTriggerUsers: (db: AgentsManageDatabaseClient) => (params: {
|
|
164
|
+
tenantId: string;
|
|
165
|
+
projectId: string;
|
|
166
|
+
userId: string;
|
|
167
|
+
}) => Promise<void>;
|
|
109
168
|
/**
|
|
110
169
|
* Upsert a trigger (create or update based on existence)
|
|
111
170
|
*/
|
|
@@ -114,4 +173,4 @@ declare const upsertTrigger: (db: AgentsManageDatabaseClient) => (params: {
|
|
|
114
173
|
data: TriggerInsert;
|
|
115
174
|
}) => Promise<TriggerSelect>;
|
|
116
175
|
//#endregion
|
|
117
|
-
export { createTrigger, deleteTrigger, deleteTriggersByRunAsUserId, getTriggerById, listTriggers, listTriggersPaginated, updateTrigger, upsertTrigger };
|
|
176
|
+
export { createTrigger, createTriggerUser, createTriggerWithUsers, deleteTrigger, deleteTriggerUser, deleteTriggersByRunAsUserId, getTriggerById, getTriggerUserCount, getTriggerUsers, getTriggerUsersBatch, getWebhookTriggerIdsWithUser, listTriggers, listTriggersPaginated, removeUserFromProjectTriggerUsers, setTriggerUsers, updateTrigger, upsertTrigger };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { triggers } from "../../db/manage/manage-schema.js";
|
|
1
|
+
import { triggerUsers, triggers } from "../../db/manage/manage-schema.js";
|
|
2
2
|
import { agentScopedWhere, projectScopedWhere } from "./scope-helpers.js";
|
|
3
|
-
import { and, count, desc, eq } from "drizzle-orm";
|
|
3
|
+
import { and, asc, count, desc, eq, inArray } from "drizzle-orm";
|
|
4
4
|
|
|
5
5
|
//#region src/data-access/manage/triggers.ts
|
|
6
6
|
/**
|
|
@@ -42,6 +42,19 @@ const listTriggersPaginated = (db) => async (params) => {
|
|
|
42
42
|
const createTrigger = (db) => async (params) => {
|
|
43
43
|
return (await db.insert(triggers).values(params).returning())[0];
|
|
44
44
|
};
|
|
45
|
+
const createTriggerWithUsers = (db) => async (params) => {
|
|
46
|
+
return db.transaction(async (tx) => {
|
|
47
|
+
const trigger = await createTrigger(tx)(params.trigger);
|
|
48
|
+
if (params.userIds.length > 0) await tx.insert(triggerUsers).values(params.userIds.map((userId) => ({
|
|
49
|
+
tenantId: trigger.tenantId,
|
|
50
|
+
projectId: trigger.projectId,
|
|
51
|
+
agentId: trigger.agentId,
|
|
52
|
+
triggerId: trigger.id,
|
|
53
|
+
userId
|
|
54
|
+
})));
|
|
55
|
+
return trigger;
|
|
56
|
+
});
|
|
57
|
+
};
|
|
45
58
|
/**
|
|
46
59
|
* Update a trigger (agent-scoped)
|
|
47
60
|
*/
|
|
@@ -68,6 +81,78 @@ const deleteTriggersByRunAsUserId = (db) => async (params) => {
|
|
|
68
81
|
projectId: params.projectId
|
|
69
82
|
}), eq(triggers.runAsUserId, params.runAsUserId)));
|
|
70
83
|
};
|
|
84
|
+
const getTriggerUsers = (db) => async (params) => {
|
|
85
|
+
return db.select().from(triggerUsers).where(and(agentScopedWhere(triggerUsers, params.scopes), eq(triggerUsers.triggerId, params.triggerId))).orderBy(asc(triggerUsers.createdAt));
|
|
86
|
+
};
|
|
87
|
+
const getTriggerUsersBatch = (db) => async (params) => {
|
|
88
|
+
if (params.triggerIds.length === 0) return /* @__PURE__ */ new Map();
|
|
89
|
+
const rows = await db.select().from(triggerUsers).where(and(agentScopedWhere(triggerUsers, params.scopes), inArray(triggerUsers.triggerId, params.triggerIds))).orderBy(asc(triggerUsers.createdAt));
|
|
90
|
+
const result = /* @__PURE__ */ new Map();
|
|
91
|
+
for (const triggerId of params.triggerIds) result.set(triggerId, []);
|
|
92
|
+
for (const row of rows) {
|
|
93
|
+
const userIds = result.get(row.triggerId);
|
|
94
|
+
if (userIds) userIds.push(row.userId);
|
|
95
|
+
}
|
|
96
|
+
return result;
|
|
97
|
+
};
|
|
98
|
+
const createTriggerUser = (db) => async (params) => {
|
|
99
|
+
return (await db.insert(triggerUsers).values({
|
|
100
|
+
tenantId: params.scopes.tenantId,
|
|
101
|
+
projectId: params.scopes.projectId,
|
|
102
|
+
agentId: params.scopes.agentId,
|
|
103
|
+
triggerId: params.triggerId,
|
|
104
|
+
userId: params.userId
|
|
105
|
+
}).onConflictDoNothing().returning())[0];
|
|
106
|
+
};
|
|
107
|
+
const deleteTriggerUser = (db) => async (params) => {
|
|
108
|
+
await db.delete(triggerUsers).where(and(agentScopedWhere(triggerUsers, params.scopes), eq(triggerUsers.triggerId, params.triggerId), eq(triggerUsers.userId, params.userId)));
|
|
109
|
+
};
|
|
110
|
+
const setTriggerUsers = (db) => async (params) => {
|
|
111
|
+
await db.delete(triggerUsers).where(and(agentScopedWhere(triggerUsers, params.scopes), eq(triggerUsers.triggerId, params.triggerId)));
|
|
112
|
+
if (params.userIds.length > 0) await db.insert(triggerUsers).values(params.userIds.map((userId) => ({
|
|
113
|
+
tenantId: params.scopes.tenantId,
|
|
114
|
+
projectId: params.scopes.projectId,
|
|
115
|
+
agentId: params.scopes.agentId,
|
|
116
|
+
triggerId: params.triggerId,
|
|
117
|
+
userId
|
|
118
|
+
})));
|
|
119
|
+
};
|
|
120
|
+
const getTriggerUserCount = (db) => async (params) => {
|
|
121
|
+
return (await db.select({ count: count() }).from(triggerUsers).where(and(agentScopedWhere(triggerUsers, params.scopes), eq(triggerUsers.triggerId, params.triggerId))))[0]?.count ?? 0;
|
|
122
|
+
};
|
|
123
|
+
const getWebhookTriggerIdsWithUser = (db) => async (params) => {
|
|
124
|
+
return db.select({
|
|
125
|
+
agentId: triggers.agentId,
|
|
126
|
+
id: triggers.id
|
|
127
|
+
}).from(triggers).innerJoin(triggerUsers, and(eq(triggerUsers.tenantId, triggers.tenantId), eq(triggerUsers.projectId, triggers.projectId), eq(triggerUsers.agentId, triggers.agentId), eq(triggerUsers.triggerId, triggers.id))).where(and(projectScopedWhere(triggers, {
|
|
128
|
+
tenantId: params.tenantId,
|
|
129
|
+
projectId: params.projectId
|
|
130
|
+
}), eq(triggerUsers.userId, params.userId)));
|
|
131
|
+
};
|
|
132
|
+
const removeUserFromProjectTriggerUsers = (db) => async (params) => {
|
|
133
|
+
await db.transaction(async (tx) => {
|
|
134
|
+
const triggerRows = await getWebhookTriggerIdsWithUser(tx)(params);
|
|
135
|
+
if (triggerRows.length === 0) return;
|
|
136
|
+
const triggerIds = triggerRows.map((row) => row.id);
|
|
137
|
+
await tx.delete(triggerUsers).where(and(projectScopedWhere(triggerUsers, {
|
|
138
|
+
tenantId: params.tenantId,
|
|
139
|
+
projectId: params.projectId
|
|
140
|
+
}), inArray(triggerUsers.triggerId, triggerIds), eq(triggerUsers.userId, params.userId)));
|
|
141
|
+
const triggersWithRemainingUsers = await tx.select({ triggerId: triggerUsers.triggerId }).from(triggerUsers).where(and(projectScopedWhere(triggerUsers, {
|
|
142
|
+
tenantId: params.tenantId,
|
|
143
|
+
projectId: params.projectId
|
|
144
|
+
}), inArray(triggerUsers.triggerId, triggerIds))).groupBy(triggerUsers.triggerId);
|
|
145
|
+
const triggerIdsWithRemainingUsers = new Set(triggersWithRemainingUsers.map((row) => row.triggerId));
|
|
146
|
+
const emptyTriggerIds = triggerIds.filter((id) => !triggerIdsWithRemainingUsers.has(id));
|
|
147
|
+
if (emptyTriggerIds.length > 0) await tx.update(triggers).set({
|
|
148
|
+
enabled: false,
|
|
149
|
+
updatedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
150
|
+
}).where(and(projectScopedWhere(triggers, {
|
|
151
|
+
tenantId: params.tenantId,
|
|
152
|
+
projectId: params.projectId
|
|
153
|
+
}), inArray(triggers.id, emptyTriggerIds), eq(triggers.enabled, true)));
|
|
154
|
+
});
|
|
155
|
+
};
|
|
71
156
|
/**
|
|
72
157
|
* Upsert a trigger (create or update based on existence)
|
|
73
158
|
*/
|
|
@@ -89,4 +174,4 @@ const upsertTrigger = (db) => async (params) => {
|
|
|
89
174
|
};
|
|
90
175
|
|
|
91
176
|
//#endregion
|
|
92
|
-
export { createTrigger, deleteTrigger, deleteTriggersByRunAsUserId, getTriggerById, listTriggers, listTriggersPaginated, updateTrigger, upsertTrigger };
|
|
177
|
+
export { createTrigger, createTriggerUser, createTriggerWithUsers, deleteTrigger, deleteTriggerUser, deleteTriggersByRunAsUserId, getTriggerById, getTriggerUserCount, getTriggerUsers, getTriggerUsersBatch, getWebhookTriggerIdsWithUser, listTriggers, listTriggersPaginated, removeUserFromProjectTriggerUsers, setTriggerUsers, updateTrigger, upsertTrigger };
|
|
@@ -12,28 +12,28 @@ declare const getApiKeyById: (db: AgentsRunDatabaseClient) => (params: {
|
|
|
12
12
|
name: string | null;
|
|
13
13
|
createdAt: string;
|
|
14
14
|
updatedAt: string;
|
|
15
|
-
expiresAt: string | null;
|
|
16
|
-
agentId: string;
|
|
17
15
|
projectId: string;
|
|
18
16
|
tenantId: string;
|
|
17
|
+
agentId: string;
|
|
19
18
|
publicId: string;
|
|
20
19
|
keyHash: string;
|
|
21
20
|
keyPrefix: string;
|
|
22
21
|
lastUsedAt: string | null;
|
|
22
|
+
expiresAt: string | null;
|
|
23
23
|
} | undefined>;
|
|
24
24
|
declare const getApiKeyByPublicId: (db: AgentsRunDatabaseClient) => (publicId: string) => Promise<{
|
|
25
25
|
id: string;
|
|
26
26
|
name: string | null;
|
|
27
27
|
createdAt: string;
|
|
28
28
|
updatedAt: string;
|
|
29
|
-
expiresAt: string | null;
|
|
30
|
-
agentId: string;
|
|
31
29
|
projectId: string;
|
|
32
30
|
tenantId: string;
|
|
31
|
+
agentId: string;
|
|
33
32
|
publicId: string;
|
|
34
33
|
keyHash: string;
|
|
35
34
|
keyPrefix: string;
|
|
36
35
|
lastUsedAt: string | null;
|
|
36
|
+
expiresAt: string | null;
|
|
37
37
|
} | undefined>;
|
|
38
38
|
declare const listApiKeys: (db: AgentsRunDatabaseClient) => (params: {
|
|
39
39
|
scopes: ProjectScopeConfig;
|
|
@@ -43,14 +43,14 @@ declare const listApiKeys: (db: AgentsRunDatabaseClient) => (params: {
|
|
|
43
43
|
name: string | null;
|
|
44
44
|
createdAt: string;
|
|
45
45
|
updatedAt: string;
|
|
46
|
-
expiresAt: string | null;
|
|
47
|
-
agentId: string;
|
|
48
46
|
projectId: string;
|
|
49
47
|
tenantId: string;
|
|
48
|
+
agentId: string;
|
|
50
49
|
publicId: string;
|
|
51
50
|
keyHash: string;
|
|
52
51
|
keyPrefix: string;
|
|
53
52
|
lastUsedAt: string | null;
|
|
53
|
+
expiresAt: string | null;
|
|
54
54
|
}[]>;
|
|
55
55
|
declare const listApiKeysPaginated: (db: AgentsRunDatabaseClient) => (params: {
|
|
56
56
|
scopes: ProjectScopeConfig;
|
|
@@ -70,14 +70,14 @@ declare const createApiKey: (db: AgentsRunDatabaseClient) => (params: ApiKeyInse
|
|
|
70
70
|
name: string | null;
|
|
71
71
|
createdAt: string;
|
|
72
72
|
updatedAt: string;
|
|
73
|
-
expiresAt: string | null;
|
|
74
|
-
agentId: string;
|
|
75
73
|
projectId: string;
|
|
76
74
|
tenantId: string;
|
|
75
|
+
agentId: string;
|
|
77
76
|
publicId: string;
|
|
78
77
|
keyHash: string;
|
|
79
78
|
keyPrefix: string;
|
|
80
79
|
lastUsedAt: string | null;
|
|
80
|
+
expiresAt: string | null;
|
|
81
81
|
}>;
|
|
82
82
|
declare const updateApiKey: (db: AgentsRunDatabaseClient) => (params: {
|
|
83
83
|
scopes: ProjectScopeConfig;
|
|
@@ -5,16 +5,16 @@ import { AppInsert, AppSelect, AppUpdate } from "../../types/entities.js";
|
|
|
5
5
|
|
|
6
6
|
//#region src/data-access/runtime/apps.d.ts
|
|
7
7
|
declare const getAppById: (db: AgentsRunDatabaseClient) => (id: string) => Promise<{
|
|
8
|
+
type: AppType;
|
|
9
|
+
description: string | null;
|
|
8
10
|
id: string;
|
|
9
11
|
name: string;
|
|
10
12
|
createdAt: string;
|
|
11
13
|
updatedAt: string;
|
|
12
|
-
description: string | null;
|
|
13
|
-
enabled: boolean;
|
|
14
|
-
type: AppType;
|
|
15
14
|
projectId: string | null;
|
|
16
15
|
tenantId: string | null;
|
|
17
16
|
prompt: string | null;
|
|
17
|
+
enabled: boolean;
|
|
18
18
|
config: {
|
|
19
19
|
type: "web_client";
|
|
20
20
|
webClient: {
|
|
@@ -61,16 +61,16 @@ declare const listAppsPaginated: (db: AgentsRunDatabaseClient) => (params: {
|
|
|
61
61
|
};
|
|
62
62
|
}>;
|
|
63
63
|
declare const createApp: (db: AgentsRunDatabaseClient) => (params: AppInsert) => Promise<{
|
|
64
|
+
type: AppType;
|
|
65
|
+
description: string | null;
|
|
64
66
|
id: string;
|
|
65
67
|
name: string;
|
|
66
68
|
createdAt: string;
|
|
67
69
|
updatedAt: string;
|
|
68
|
-
description: string | null;
|
|
69
|
-
enabled: boolean;
|
|
70
|
-
type: AppType;
|
|
71
70
|
projectId: string | null;
|
|
72
71
|
tenantId: string | null;
|
|
73
72
|
prompt: string | null;
|
|
73
|
+
enabled: boolean;
|
|
74
74
|
config: {
|
|
75
75
|
type: "web_client";
|
|
76
76
|
webClient: {
|