@inkeep/agents-core 0.0.0-dev-20260409191739 → 0.0.0-dev-20260409202031

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.
Files changed (55) hide show
  1. package/dist/auth/auth-schema.d.ts +108 -108
  2. package/dist/auth/auth-validation-schemas.d.ts +154 -154
  3. package/dist/auth/permissions.d.ts +9 -9
  4. package/dist/client-exports.d.ts +2 -2
  5. package/dist/client-exports.js +2 -2
  6. package/dist/constants/otel-attributes.d.ts +2 -0
  7. package/dist/constants/otel-attributes.js +2 -0
  8. package/dist/data-access/index.d.ts +2 -2
  9. package/dist/data-access/index.js +2 -2
  10. package/dist/data-access/manage/agentFull.js +23 -3
  11. package/dist/data-access/manage/agents.d.ts +20 -20
  12. package/dist/data-access/manage/agents.js +12 -1
  13. package/dist/data-access/manage/artifactComponents.d.ts +6 -6
  14. package/dist/data-access/manage/contextConfigs.d.ts +8 -8
  15. package/dist/data-access/manage/dataComponents.d.ts +2 -2
  16. package/dist/data-access/manage/functionTools.d.ts +8 -8
  17. package/dist/data-access/manage/skills.d.ts +11 -11
  18. package/dist/data-access/manage/subAgentExternalAgentRelations.d.ts +6 -6
  19. package/dist/data-access/manage/subAgentRelations.d.ts +12 -12
  20. package/dist/data-access/manage/subAgentTeamAgentRelations.d.ts +6 -6
  21. package/dist/data-access/manage/subAgents.d.ts +12 -12
  22. package/dist/data-access/manage/tools.d.ts +21 -21
  23. package/dist/data-access/manage/triggerCleanup.js +6 -1
  24. package/dist/data-access/manage/triggers.d.ts +60 -1
  25. package/dist/data-access/manage/triggers.js +88 -3
  26. package/dist/data-access/runtime/apiKeys.d.ts +8 -8
  27. package/dist/data-access/runtime/apps.d.ts +6 -6
  28. package/dist/data-access/runtime/conversations.d.ts +24 -24
  29. package/dist/data-access/runtime/feedback.d.ts +4 -4
  30. package/dist/data-access/runtime/messages.d.ts +21 -21
  31. package/dist/data-access/runtime/scheduledTriggerInvocations.d.ts +4 -4
  32. package/dist/data-access/runtime/scheduledTriggerUsers.d.ts +1 -1
  33. package/dist/data-access/runtime/tasks.d.ts +5 -5
  34. package/dist/data-access/runtime/triggerInvocations.d.ts +2 -0
  35. package/dist/db/manage/dolt-safe-jsonb.d.ts +2 -2
  36. package/dist/db/manage/manage-schema.d.ts +583 -447
  37. package/dist/db/manage/manage-schema.js +43 -2
  38. package/dist/db/runtime/runtime-schema.d.ts +443 -405
  39. package/dist/db/runtime/runtime-schema.js +4 -1
  40. package/dist/index.d.ts +4 -4
  41. package/dist/index.js +4 -4
  42. package/dist/utils/error.d.ts +51 -51
  43. package/dist/validation/drizzle-schema-helpers.d.ts +3 -3
  44. package/dist/validation/index.d.ts +2 -2
  45. package/dist/validation/index.js +2 -2
  46. package/dist/validation/schemas/skills.d.ts +58 -58
  47. package/dist/validation/schemas.d.ts +2238 -2044
  48. package/dist/validation/schemas.js +35 -13
  49. package/drizzle/manage/0018_gorgeous_captain_america.sql +14 -0
  50. package/drizzle/manage/meta/0018_snapshot.json +3884 -0
  51. package/drizzle/manage/meta/_journal.json +7 -0
  52. package/drizzle/runtime/0035_many_steel_serpent.sql +3 -0
  53. package/drizzle/runtime/meta/0035_snapshot.json +5321 -0
  54. package/drizzle/runtime/meta/_journal.json +7 -0
  55. package/package.json +1 -1
@@ -12,8 +12,8 @@ declare const getSubAgentTeamAgentRelationById: (db: AgentsManageDatabaseClient)
12
12
  id: string;
13
13
  createdAt: string;
14
14
  updatedAt: string;
15
- tenantId: string;
16
15
  projectId: string;
16
+ tenantId: string;
17
17
  agentId: string;
18
18
  subAgentId: string;
19
19
  headers: Record<string, string> | null;
@@ -47,8 +47,8 @@ declare const getSubAgentTeamAgentRelations: (db: AgentsManageDatabaseClient) =>
47
47
  id: string;
48
48
  createdAt: string;
49
49
  updatedAt: string;
50
- tenantId: string;
51
50
  projectId: string;
51
+ tenantId: string;
52
52
  agentId: string;
53
53
  subAgentId: string;
54
54
  headers: Record<string, string> | null;
@@ -60,8 +60,8 @@ declare const getSubAgentTeamAgentRelationsByAgent: (db: AgentsManageDatabaseCli
60
60
  id: string;
61
61
  createdAt: string;
62
62
  updatedAt: string;
63
- tenantId: string;
64
63
  projectId: string;
64
+ tenantId: string;
65
65
  agentId: string;
66
66
  subAgentId: string;
67
67
  headers: Record<string, string> | null;
@@ -225,8 +225,8 @@ declare const createSubAgentTeamAgentRelation: (db: AgentsManageDatabaseClient)
225
225
  id: string;
226
226
  createdAt: string;
227
227
  updatedAt: string;
228
- tenantId: string;
229
228
  projectId: string;
229
+ tenantId: string;
230
230
  agentId: string;
231
231
  subAgentId: string;
232
232
  headers: Record<string, string> | null;
@@ -242,8 +242,8 @@ declare const getSubAgentTeamAgentRelationByParams: (db: AgentsManageDatabaseCli
242
242
  id: string;
243
243
  createdAt: string;
244
244
  updatedAt: string;
245
- tenantId: string;
246
245
  projectId: string;
246
+ tenantId: string;
247
247
  agentId: string;
248
248
  subAgentId: string;
249
249
  headers: Record<string, string> | null;
@@ -263,8 +263,8 @@ declare const upsertSubAgentTeamAgentRelation: (db: AgentsManageDatabaseClient)
263
263
  id: string;
264
264
  createdAt: string;
265
265
  updatedAt: string;
266
- tenantId: string;
267
266
  projectId: string;
267
+ tenantId: string;
268
268
  agentId: string;
269
269
  subAgentId: string;
270
270
  headers: Record<string, string> | null;
@@ -9,11 +9,13 @@ 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
+ projectId: string;
18
+ tenantId: string;
17
19
  models: {
18
20
  base?: {
19
21
  model?: string | undefined;
@@ -37,20 +39,20 @@ declare const getSubAgentById: (db: AgentsManageDatabaseClient) => (params: {
37
39
  stopWhen: {
38
40
  stepCountIs?: number | undefined;
39
41
  } | null;
40
- tenantId: string;
41
- prompt: string | null;
42
- projectId: string;
43
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
+ projectId: string;
55
+ tenantId: string;
54
56
  models: {
55
57
  base?: {
56
58
  model?: string | undefined;
@@ -74,10 +76,8 @@ declare const listSubAgents: (db: AgentsManageDatabaseClient) => (params: {
74
76
  stopWhen: {
75
77
  stepCountIs?: number | undefined;
76
78
  } | null;
77
- tenantId: string;
78
- prompt: string | null;
79
- projectId: string;
80
79
  agentId: string;
80
+ prompt: string | null;
81
81
  conversationHistoryConfig: ConversationHistoryConfig | null;
82
82
  }[]>;
83
83
  declare const listSubAgentsPaginated: (db: AgentsManageDatabaseClient) => (params: {
@@ -127,11 +127,13 @@ 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
+ projectId: string;
136
+ tenantId: string;
135
137
  models: {
136
138
  base?: {
137
139
  model?: string | undefined;
@@ -155,10 +157,8 @@ declare const createSubAgent: (db: AgentsManageDatabaseClient) => (params: SubAg
155
157
  stopWhen: {
156
158
  stepCountIs?: number | undefined;
157
159
  } | null;
158
- tenantId: string;
159
- prompt: string | null;
160
- projectId: string;
161
160
  agentId: string;
161
+ prompt: string | null;
162
162
  conversationHistoryConfig: ConversationHistoryConfig | null;
163
163
  }>;
164
164
  declare const updateSubAgent: (db: AgentsManageDatabaseClient) => (params: {
@@ -20,20 +20,20 @@ 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
- tenantId: string;
29
28
  projectId: string;
30
- credentialReferenceId: string | null;
29
+ tenantId: string;
30
+ headers: Record<string, string> | null;
31
31
  config: {
32
32
  type: "mcp";
33
33
  mcp: ToolMcpConfig;
34
34
  };
35
+ credentialReferenceId: string | null;
35
36
  credentialScope: string;
36
- headers: Record<string, string> | null;
37
37
  imageUrl: string | null;
38
38
  capabilities: ToolServerCapabilities | null;
39
39
  lastError: string | null;
@@ -78,20 +78,20 @@ 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
- tenantId: string;
87
86
  projectId: string;
88
- credentialReferenceId: string | null;
87
+ tenantId: string;
88
+ headers: Record<string, string> | null;
89
89
  config: {
90
90
  type: "mcp";
91
91
  mcp: ToolMcpConfig;
92
92
  };
93
+ credentialReferenceId: string | null;
93
94
  credentialScope: string;
94
- headers: Record<string, string> | null;
95
95
  imageUrl: string | null;
96
96
  capabilities: ToolServerCapabilities | null;
97
97
  lastError: string | null;
@@ -138,16 +138,16 @@ declare const addToolToAgent: (db: AgentsManageDatabaseClient) => (params: {
138
138
  id: string;
139
139
  createdAt: string;
140
140
  updatedAt: string;
141
- tenantId: string;
142
141
  projectId: string;
142
+ tenantId: string;
143
143
  agentId: string;
144
- toolId: string;
145
144
  subAgentId: string;
145
+ toolId: string;
146
146
  headers: Record<string, string> | null;
147
- selectedTools: string[] | null;
148
147
  toolPolicies: Record<string, {
149
148
  needsApproval?: boolean;
150
149
  }> | null;
150
+ selectedTools: string[] | null;
151
151
  }>;
152
152
  declare const removeToolFromAgent: (db: AgentsManageDatabaseClient) => (params: {
153
153
  scopes: AgentScopeConfig;
@@ -157,16 +157,16 @@ declare const removeToolFromAgent: (db: AgentsManageDatabaseClient) => (params:
157
157
  id: string;
158
158
  createdAt: string;
159
159
  updatedAt: string;
160
- tenantId: string;
161
160
  projectId: string;
161
+ tenantId: string;
162
162
  agentId: string;
163
- toolId: string;
164
163
  subAgentId: string;
164
+ toolId: string;
165
165
  headers: Record<string, string> | null;
166
- selectedTools: string[] | null;
167
166
  toolPolicies: Record<string, {
168
167
  needsApproval?: boolean;
169
168
  }> | null;
169
+ selectedTools: string[] | null;
170
170
  }>;
171
171
  /**
172
172
  * Upsert agent-tool relation (create if it doesn't exist, update if it does)
@@ -185,16 +185,16 @@ declare const upsertSubAgentToolRelation: (db: AgentsManageDatabaseClient) => (p
185
185
  id: string;
186
186
  createdAt: string;
187
187
  updatedAt: string;
188
- tenantId: string;
189
188
  projectId: string;
189
+ tenantId: string;
190
190
  agentId: string;
191
- toolId: string;
192
191
  subAgentId: string;
192
+ toolId: string;
193
193
  headers: Record<string, string> | null;
194
- selectedTools: string[] | null;
195
194
  toolPolicies: Record<string, {
196
195
  needsApproval?: boolean;
197
196
  }> | null;
197
+ selectedTools: string[] | null;
198
198
  }>;
199
199
  /**
200
200
  * Upsert a tool (create if it doesn't exist, update if it does)
@@ -202,20 +202,20 @@ 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
- tenantId: string;
211
210
  projectId: string;
212
- credentialReferenceId: string | null;
211
+ tenantId: string;
212
+ headers: Record<string, string> | null;
213
213
  config: {
214
214
  type: "mcp";
215
215
  mcp: ToolMcpConfig;
216
216
  };
217
+ credentialReferenceId: string | null;
217
218
  credentialScope: string;
218
- headers: Record<string, string> | null;
219
219
  imageUrl: string | null;
220
220
  capabilities: ToolServerCapabilities | null;
221
221
  lastError: string | null;
@@ -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}`
@@ -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
- tenantId: string;
17
15
  projectId: string;
16
+ tenantId: string;
18
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
- tenantId: string;
31
29
  projectId: string;
30
+ tenantId: string;
32
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
- tenantId: string;
48
46
  projectId: string;
47
+ tenantId: string;
49
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
- tenantId: string;
75
73
  projectId: string;
74
+ tenantId: string;
76
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;
@@ -6,15 +6,15 @@ import { AppInsert, AppSelect, AppUpdate } from "../../types/entities.js";
6
6
  //#region src/data-access/runtime/apps.d.ts
7
7
  declare const getAppById: (db: AgentsRunDatabaseClient) => (id: string) => Promise<{
8
8
  type: AppType;
9
+ description: string | null;
9
10
  id: string;
10
11
  name: string;
11
12
  createdAt: string;
12
13
  updatedAt: string;
13
- description: string | null;
14
+ projectId: string | null;
14
15
  tenantId: string | null;
15
- enabled: boolean;
16
16
  prompt: string | null;
17
- projectId: string | null;
17
+ enabled: boolean;
18
18
  config: {
19
19
  type: "web_client";
20
20
  webClient: {
@@ -62,15 +62,15 @@ declare const listAppsPaginated: (db: AgentsRunDatabaseClient) => (params: {
62
62
  }>;
63
63
  declare const createApp: (db: AgentsRunDatabaseClient) => (params: AppInsert) => Promise<{
64
64
  type: AppType;
65
+ description: string | null;
65
66
  id: string;
66
67
  name: string;
67
68
  createdAt: string;
68
69
  updatedAt: string;
69
- description: string | null;
70
+ projectId: string | null;
70
71
  tenantId: string | null;
71
- enabled: boolean;
72
72
  prompt: string | null;
73
- projectId: string | null;
73
+ enabled: boolean;
74
74
  config: {
75
75
  type: "web_client";
76
76
  webClient: {