@inkeep/agents-core 0.0.0-dev-20260409191739 → 0.0.0-dev-20260409192310
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 +108 -108
- package/dist/auth/auth-validation-schemas.d.ts +137 -137
- 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 +5 -5
- package/dist/data-access/manage/agents.js +12 -1
- package/dist/data-access/manage/contextConfigs.d.ts +4 -4
- package/dist/data-access/manage/skills.d.ts +3 -3
- package/dist/data-access/manage/subAgentExternalAgentRelations.d.ts +6 -6
- package/dist/data-access/manage/subAgentRelations.d.ts +4 -4
- package/dist/data-access/manage/subAgentTeamAgentRelations.d.ts +6 -6
- package/dist/data-access/manage/subAgents.d.ts +3 -3
- package/dist/data-access/manage/tools.d.ts +9 -9
- package/dist/data-access/manage/triggerCleanup.js +6 -1
- package/dist/data-access/manage/triggers.d.ts +62 -3
- package/dist/data-access/manage/triggers.js +88 -3
- package/dist/data-access/runtime/apps.d.ts +4 -4
- package/dist/data-access/runtime/messages.d.ts +3 -3
- 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 +587 -451
- package/dist/db/manage/manage-schema.js +43 -2
- package/dist/db/runtime/runtime-schema.d.ts +443 -405
- package/dist/db/runtime/runtime-schema.js +4 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.js +4 -4
- package/dist/middleware/no-auth.d.ts +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 +21 -21
- package/dist/validation/schemas.d.ts +1588 -1394
- 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
|
@@ -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 };
|
|
@@ -11,10 +11,10 @@ declare const getAppById: (db: AgentsRunDatabaseClient) => (id: string) => Promi
|
|
|
11
11
|
createdAt: string;
|
|
12
12
|
updatedAt: string;
|
|
13
13
|
description: string | null;
|
|
14
|
-
tenantId: string | null;
|
|
15
14
|
enabled: boolean;
|
|
16
|
-
|
|
15
|
+
tenantId: string | null;
|
|
17
16
|
projectId: string | null;
|
|
17
|
+
prompt: string | null;
|
|
18
18
|
config: {
|
|
19
19
|
type: "web_client";
|
|
20
20
|
webClient: {
|
|
@@ -67,10 +67,10 @@ declare const createApp: (db: AgentsRunDatabaseClient) => (params: AppInsert) =>
|
|
|
67
67
|
createdAt: string;
|
|
68
68
|
updatedAt: string;
|
|
69
69
|
description: string | null;
|
|
70
|
-
tenantId: string | null;
|
|
71
70
|
enabled: boolean;
|
|
72
|
-
|
|
71
|
+
tenantId: string | null;
|
|
73
72
|
projectId: string | null;
|
|
73
|
+
prompt: string | null;
|
|
74
74
|
config: {
|
|
75
75
|
type: "web_client";
|
|
76
76
|
webClient: {
|
|
@@ -16,8 +16,8 @@ declare const getMessageById: (db: AgentsRunDatabaseClient) => (params: {
|
|
|
16
16
|
metadata: MessageMetadata | null;
|
|
17
17
|
role: string;
|
|
18
18
|
tenantId: string;
|
|
19
|
-
projectId: string;
|
|
20
19
|
content: MessageContent;
|
|
20
|
+
projectId: string;
|
|
21
21
|
conversationId: string;
|
|
22
22
|
fromSubAgentId: string | null;
|
|
23
23
|
toSubAgentId: string | null;
|
|
@@ -150,8 +150,8 @@ declare const createMessage: (db: AgentsRunDatabaseClient) => (params: {
|
|
|
150
150
|
metadata: MessageMetadata | null;
|
|
151
151
|
role: string;
|
|
152
152
|
tenantId: string;
|
|
153
|
-
projectId: string;
|
|
154
153
|
content: MessageContent;
|
|
154
|
+
projectId: string;
|
|
155
155
|
conversationId: string;
|
|
156
156
|
fromSubAgentId: string | null;
|
|
157
157
|
toSubAgentId: string | null;
|
|
@@ -203,8 +203,8 @@ declare const deleteMessage: (db: AgentsRunDatabaseClient) => (params: {
|
|
|
203
203
|
metadata: MessageMetadata | null;
|
|
204
204
|
role: string;
|
|
205
205
|
tenantId: string;
|
|
206
|
-
projectId: string;
|
|
207
206
|
content: MessageContent;
|
|
207
|
+
projectId: string;
|
|
208
208
|
conversationId: string;
|
|
209
209
|
fromSubAgentId: string | null;
|
|
210
210
|
toSubAgentId: string | null;
|
|
@@ -28,6 +28,8 @@ declare const listTriggerInvocationsPaginated: (db: AgentsRunDatabaseClient) =>
|
|
|
28
28
|
data: {
|
|
29
29
|
triggerId: string;
|
|
30
30
|
conversationId: string | null;
|
|
31
|
+
runAsUserId: string | null;
|
|
32
|
+
batchId: string | null;
|
|
31
33
|
ref: {
|
|
32
34
|
type: "commit" | "tag" | "branch";
|
|
33
35
|
name: string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as drizzle_orm_pg_core220 from "drizzle-orm/pg-core";
|
|
2
2
|
|
|
3
3
|
//#region src/db/manage/dolt-safe-jsonb.d.ts
|
|
4
4
|
declare function encodeBackslashes(value: unknown): unknown;
|
|
@@ -7,6 +7,6 @@ declare function decodeBackslashes(value: unknown): unknown;
|
|
|
7
7
|
* Drop-in replacement for drizzle-orm's `jsonb()`.
|
|
8
8
|
* Encodes backslashes on write and decodes on read to work around the Doltgres bug.
|
|
9
9
|
*/
|
|
10
|
-
declare function jsonb(name: string): ReturnType<typeof
|
|
10
|
+
declare function jsonb(name: string): ReturnType<typeof drizzle_orm_pg_core220.jsonb>;
|
|
11
11
|
//#endregion
|
|
12
12
|
export { decodeBackslashes, encodeBackslashes, jsonb };
|